jqplot を使用している間、2 つのシリーズで棒グラフを作成する必要があり、それぞれが 3 つの異なる値 (カテゴリ) で構成されています。問題は、最初の値が約 50000 で、他の 2 つの値が約 (-3) - (3) であることです。したがって、1 つのチャートに描画している間は、2 つのバーしか表示されません。y 軸に LogRenderer を使おうと思っていたのですが、どうもうまくいきません。最良のオプションは、各 tickgroup(category) に異なる y 軸を設定することですが、検索した後、これを行う方法が見つかりませんでした。(重要なのは、シリーズが 2 つだけである必要があることです。これは日付の比較であるため、シリーズの内容を変更することはできません)
これを達成する方法を知っている人はいますか?または、すべてのデータを 1 つのグラフに表示する他の方法はありますか (主に棒グラフを使用)。
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
ありがとう