mekkoCharts.html
9.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
<!DOCTYPE html>
<html>
<head>
<title>Mekko Charts</title>
<link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
<link rel="stylesheet" type="text/css" href="examples.min.css" />
<link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
<link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
<script class="include" type="text/javascript" src="../jquery.min.js"></script>
</head>
<body>
<div class="logo">
<div class="nav">
<a class="nav" href="../../../index.php"><span>></span>Home</a>
<a class="nav" href="../../../docs/"><span>></span>Docs</a>
<a class="nav" href="../../download/"><span>></span>Download</a>
<a class="nav" href="../../../info.php"><span>></span>Info</a>
<a class="nav" href="../../../donate.php"><span>></span>Donate</a>
</div>
</div>
<div class="example-content">
<div class="example-nav">
<a href="line-charts.html">Previous</a> <a href="./">Examples</a> <a href="meritOrder.html">Next</a></div>
<!-- Example scripts go here -->
<style type="text/css" media="screen">
body {
margin: 15px;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
}
p {
margin-top: 20px;
margin-bottom: 20px;
}
.jqplot-target {
margin: 60px;
}
pre {
padding: 10px;
background-color: #efead9;
margin: 10px;
}
.jqplot-axis {
font-size: 0.8em;
}
.jqplot-mekko-barLabel {
font-size: 1em;
}
#chart2 .jqplot-axis {
font-size: 0.7em;
}
#chart3 .jqplot-title {
padding-bottom: 40px;
}
</style>
<p>Data is specified per bar in the chart. You can specify data as an array of y values, or as an array of [label, value] pairs. Note that labels are used only on the first series. Labels on subsequent series are ignored:</p>
<pre>
bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
bar2 = [15,6,9,13,6];
bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
</pre>
<p>If you want to place labels for each bar under the axis, you use the barLabels option on the axes. The bar labels can be styled with the ".jqplot-mekko-barLabel" css class.</p>
<pre>
barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
axes:{xaxis:{barLabels:barLabels}}
</pre>
<div id="chart1" style="width:500px; height:300px;"></div>
<p>You can add a secondary x axes, and the tick spacing of the axes can be separately controlled with the "tickMode" option. "bar" will produce tics at bar boundaries, "even" will produce evenly spaced ticks. If you set the axes max greater than the sum of the data range (the maximum x value), the plot will be padded. Note that you should set the max on both axes to the same value.</p>
<pre>
axes:{
xaxis:{
barLabels:barLabels,
max: 175
},
x2axis:{
show:true,
tickMode:'even',
max: 175
}
}
</pre>
<p>Here the borders between chart areas have been given a custom color using the "borderColor" option on the series renderer.</p>
<pre>
seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {borderColor: '#dddddd'}}
</pre>
<p>Additionally, the legend can be placed "outside" (the default for a mekko chart) or "inside" of the grid area with the "placement" option on the legend renderer.</p>
<pre>
legend:{
show:true,
rendererOptions:{placement: "insideGrid"},
location:'e'
},
</pre>
<div id="chart2" style="width:500px; height:300px;"></div>
<p>Legend labels can be specified independently of the series with the "labels" option on the legend. These will override any labels specified with the series. There are also options to control the number of rows and number of columns in the legend as well as placement.</p>
<p>Here the legend is positioned to the "north" and set to render 1 row tall (number of columns determined automatically). Note that an extra css specification was added to pad the bottom of the title of this chart to give room for the legend above the plot.</p>
<pre>
legendLabels = ['hotels', 'rides', 'buses', 'instruments', 'totes'];
legend:{
show:true,
location: 'n',
labels: legendLabels,
rendererOptions:{numberRows: 1, placement: "outside"}
},
</pre>
<p>Also, the borders between the chart areas have been turned off with the "showBorders: false" option.</p>
<pre>
seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {showBorders: false}}
</pre>
<div id="chart3" style="width:500px; height:300px;"></div>
<script type="text/javascript" class="code">
$(document).ready(function(){
var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
var bar2 = [15,6,9,13,6];
var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
var plot1 = $.jqplot('chart1', [bar1, bar2, bar3], {
title: 'Revenue Breakdown per Character',
seriesDefaults:{renderer:$.jqplot.MekkoRenderer},
legend:{show:true},
axesDefaults:{
renderer:$.jqplot.MekkoAxisRenderer
},
axes:{
xaxis:{
barLabels:barLabels,
tickOptions:{formatString:'$%dM'}
}
}
});
});
</script>
<script type="text/javascript" class="code">
$(document).ready(function(){
var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
var bar2 = [15,6,9,13,6];
var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
var plot2 = $.jqplot('chart2', [bar1, bar2, bar3], {
title: 'Revenue Breakdown per Character',
seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {borderColor: '#dddddd'}},
legend:{
show:true,
rendererOptions:{placement: "insideGrid"},
location:'e'
},
axesDefaults:{
renderer:$.jqplot.MekkoAxisRenderer,
tickOptions:{}
},
axes:{
xaxis:{
barLabels:barLabels,
rendererOptions: {
barLabelOptions: {
angle: -35
},
barLabelRenderer: $.jqplot.CanvasAxisLabelRenderer
},
max: 175,
tickOptions:{formatString:'$%dM'}
},
x2axis:{
show:true,
tickMode:'even',
max: 175,
tickOptions:{formatString:'$%dM'}
}
}
});
});
</script>
<script type="text/javascript" class="code">
$(document).ready(function(){
var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
var bar2 = [15,6,9,13,6];
var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
var legendLabels = ['hotels', 'rides', 'buses', 'instruments', 'totes'];
var plot3 = $.jqplot('chart3', [bar1, bar2, bar3], {
title: 'Revenue Breakdown per Character',
seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {showBorders: false}},
legend:{
show:true,
location: 'n',
labels: legendLabels,
rendererOptions:{numberRows: 1, placement: "outside"}
},
axesDefaults:{
renderer:$.jqplot.MekkoAxisRenderer,
tickOptions:{showGridline:false}
},
axes:{
xaxis:{
tickMode:"bar",
tickOptions:{formatString:'$%dM'}
}
}
});
});
</script>
<!-- End example scripts -->
<!-- Don't touch this! -->
<script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
<script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
<script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
<script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
<!-- End Don't touch this! -->
<!-- Additional plugins go here -->
<script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
<script class="include" type="text/javascript" src="../plugins/jqplot.mekkoRenderer.min.js"></script>
<script class="include" type="text/javascript" src="../plugins/jqplot.mekkoAxisRenderer.min.js"></script>
<script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
<script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
<!-- End additional plugins -->
</div>
<script type="text/javascript" src="example.min.js"></script>
</body>
</html>