jQuery の jqPlot で作る内側上の横並び凡例付き縦棒グラフ

jQueryのjqPlotプラグインで作る複数系列の縦棒グラフにおいて、グラフの内側の上中央に、系列ラベルを横に並べた凡例を表示する方法。

「plugins」フォルダに入っている「jqplot.barRenderer.min.js」を使えば、縦棒グラフを描くことができる。複数の系列データの配列を用意すれば、複数系列の縦棒グラフも描ける。凡例の表示には、seriesオプションと、legendオプションを使う。

凡例を上に表示する場合、系列ラベルを、横に並べたいと思うことだろう。そんな時は、「plugins」フォルダに含まれている「jqplot.enhancedLegendRenderer.min.js」を使う。

実装例(サンプル)

実装例(サンプル)の動作について

凡例内の系列ラベル名をクリックすると、その系列の縦棒グラフを非表示にする。系列ラベル名には訂正線が引かれる。再度クリックすると、元に戻す。

実装例(サンプル)のソースコード

読み込み

パスは、それぞれ、アップロードした場所を指定する。

<script language="javascript" type="text/javascript" src="jquery-1.7.1.min.js"></script>
<!--[if lt IE 9]>
    <script language="javascript" type="text/javascript" src="excanvas.min.js"></script>
<![endif]-->
<script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script>
<script language="javascript" type="text/javascript" src="plugins/jqplot.barRenderer.min.js"></script>
<script language="javascript" type="text/javascript" src="plugins/jqplot.categoryAxisRenderer.min.js"></script>
<script language="javascript" type="text/javascript" src="plugins/jqplot.enhancedLegendRenderer.min.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.jqplot.min.css" />

読み込むファイル。

JavaScript

<script>
jQuery( function() {
    Tokyo = [ [ 'A', 8031624 ], [ 'B', 2942392 ], [ 'C', 1166755 ], [ 'D', 8811831 ], [ 'E', 4323067 ], [ 'F', 1718392 ] ];
    Osaka = [ [ 'A', 5919275 ], [ 'B', 2228422 ], [ 'C', 6369703 ], [ 'D', 9916855 ], [ 'E', 5181441 ], [ 'F', 9623963 ] ];
    Nagoya = [ [ 'A', 2782943 ], [ 'B', 8612849 ], [ 'C', 1628417 ], [ 'D', 5066818 ], [ 'E', 7536765 ], [ 'F', 1747767 ] ];
    jQuery . jqplot(
        'jqPlot-sample',
        [
            Tokyo, Osaka, Nagoya
        ],
        {
            seriesDefaults: {
                renderer: jQuery . jqplot . BarRenderer,
            },
            series: [
                { label: '東京本店' },
                { label: '大阪支店' },
                { label: '名古屋支店' }
            ],
            legend: {
                show: true,
                placement: 'insideGrid',
                location: 'n',
                renderer: jQuery . jqplot . EnhancedLegendRenderer,
                rendererOptions: {
                    numberColumns: 3
                }
            },
            axes: {
                xaxis: {
                    renderer: jQuery . jqplot . CategoryAxisRenderer,
                }
            }
        }
    );
} );
</script>
seriesDefaults

グラフの種類や、系列の色、太さなど、系列に関する初期設定。

renderer

系列の生成編集に使うプラグインを指定。

series

各系列ごとに指定する系列に関するオプション。1つ目の系列から順に、配列で指定する。

label

系列のラベル。

legend

凡例に関するオプション。

show

凡例を表示するか。「true」は表示。「false」は非表示。初期設定値は、「false」。

placement

凡例を配置する位置。

location

凡例を配置する位置(方角)。


renderer

凡例の生成編集に使うプラグインを指定。

  • jQuery . jqplot . EnhancedLegendRenderer: 凡例の機能を強化する。
rendererOptions

凡例の生成編集に関するオプション。

numberColumns

凡例の列数。

axes

軸に関するオプション。

xaxis

X軸に関するオプション。

renderer

jQuery . jqplot . CategoryAxisRendererX軸をカテゴリとして扱う。

HTML

<div id="jqPlot-sample" style="height: 300px; width: 500px;"></div>

スポンサード リンク

カテゴリー: barRenderer, categoryAxisRenderer, enhancedLegendRenderer, JavaScript, jqPlot, jQuery, グラフ、チャート, プラグイン, 縦棒グラフ パーマリンク