jQuery UI と jqPlot で作るサイズを変更できる円グラフ

jQueryのjqPlotプラグインで作る円グラフにおいて、jQuery UIResizableを併用し、ドラッグ&ドロップで、サイズを変更できるようにする方法。

実装例(サンプル)

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

グラフを囲む実線の四角の右下をドラッグ&ドロップすることで、円グラフ全体のサイズを変更することができる。

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

読み込み

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

<script language="javascript" type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script language="javascript" type="text/javascript" src="ui/jquery-ui-1.8.12.custom.min.js"></script>
<link rel="stylesheet" href="ui/themes/base/jquery.ui.all.css">
<!--[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.pieRenderer.min.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.jqplot.min.css" />

読み込むファイル。

JavaScript

<script>
jQuery( function() {
    var samplePlot = jQuery . jqplot(
        'jqPlot-sample',
        [
            [
                [ 'A社', 53269 ],
                [ 'B社', 78493 ],
                [ 'C社', 35996 ],
                [ 'その他', 30582 ]
            ]
        ],
        {
            seriesDefaults: {
                renderer: jQuery . jqplot . PieRenderer,
                rendererOptions: {
                    padding: 15,
                    dataLabels: 'label',
                    showDataLabels: true,
                    startAngle: -90,
                }
            },
        }
    );
    jQuery( "#resizable" ) . resizable( {
        minHeight: 150,
        minWidth: 150,
        maxHeight: 500,
        maxWidth: 500,
        aspectRatio: 1 / 1,
    } );
    jQuery( '#resizable' ) . bind( 'resize', function( event, ui ) {
        jQuery( '#jqPlot-sample' ) . height(
            jQuery( '#resizable' ) . height() * 1
        );
        jQuery( '#jqPlot-sample' ) . width(
            jQuery( '#resizable' ) . width() * 1
        );
        samplePlot . replot( { resetAxes: true } );
    } );
} );
</script>
jqPlotに関するオプション
seriesDefaults

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

renderer

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

rendererOptions

系列の生成編集オプション。

padding

円グラフの円の周りの余白。初期設定値は「20」。

dataLabels

データラベルとして表示する内容。初期設定値は「percent」。

配列で順番に指定することもできる。

showDataLabels

データラベルを表示するか。「true」を指定するとデータラベルを表示する。初期設定値は「false」。

startAngle

1つ目のスライスを描き始める場所を角度で指定。初期設定値は「0」。

resizableに関するオプション
minHeight

最小の高さを指定するオプション。初期設定値は「10」。

minWidth

最小の幅を指定するオプション。初期設定値は「10」。

maxHeight

最大の高さを指定するオプション。初期設定値はない。

maxWidth

最大の幅を指定するオプション。初期設定値はない。

aspectRatio

幅と高さの比率を指定。

HTML

<div id="resizable" class="ui-widget-content" style="padding: 5px; width: 300px;">
    <div id="jqPlot-sample" style="height: 300px;"></div>
</div>

スポンサード リンク

カテゴリー: JavaScript, jqPlot, jQuery, jQuery UI, pieRenderer, Resizable, グラフ、チャート, プラグイン, 円グラフ パーマリンク