在使用 jqplot 时,我必须创建具有 2 个系列的条形图,每个系列都包含 3 个不同的值(类别)。问题是第一个值大约是 50000,另外两个大约是 (-3) - (3)。因此,在一张图表上绘制时,只有 2 条可见。我正在考虑将 LogRenderer 用于 y 轴,但它似乎根本不起作用。最好的选择是为每个刻度组(类别)设置不同的 y 轴,但是在搜索后我没有找到任何方法来做到这一点。(重要的是必须只有 2 个系列 - 这是日期比较,因此不可能更改系列中的内容)
有谁知道如何实现这一目标?或者有没有其他方法可以在一张图表上显示所有数据(主要使用条形图)。
JS 摆弄我的工作示例:http: //jsfiddle.net/F5N4r/
标题:
<script type="text/javascript" src="https://bitbucket.org/armata007/jqplot/downloads/jquery.jqplot.min.js"></script>
<script type="text/javascript" src="https://bitbucket.org/armata007/jqplot/downloads/jqplot.barRenderer.min.js"></script>
<script type="text/javascript" src="https://bitbucket.org/armata007/jqplot/downloads/jqplot.canvasAxisTickRenderer.min.js"></script>
<script type="text/javascript" src="https://bitbucket.org/armata007/jqplot/downloads/jqplot.categoryAxisRenderer.min.js"></script>
<script type="text/javascript" src="https://bitbucket.org/armata007/jqplot/downloads/jqplot.enhancedLegendRenderer.min.js"></script>
<script type="text/javascript" src="https://bitbucket.org/armata007/jqplot/downloads/jqplot.logAxisRenderer.min.js"></script>
<div id="plot"></div>
编码:
var s1 = [50000, 0.11, 2.3];
var s2 = [55000, -0.20, 1.4];
var ticks = ['category 1', 'category 2', 'category 3'];
var plot1 = $.jqplot('plot', [s1, s2], {
seriesDefaults: {
renderer: $.jqplot.BarRenderer,
rendererOptions: {
fillToZero: true
}
},
series: [
{
label: 'January 2012'},
{
label: 'February 2012'}
],
legend: {
show: true,
placement: "outside",
location: "s",
renderer: $.jqplot.EnhancedLegendRenderer,
rendererOptions: {
numberRows: 1
},
marginTop: "34px"
},
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
ticks: ticks
},
yaxis: {
//renderer: $.jqplot.LogAxisRenderer,
pad: 1.05,
tickOptions: {
formatString: '%d'
}
}
}
});
结果: http ://www.roslaw.pl/pics/2012-11-29_18-56-55_835341x930andWndpnd.png
谢谢