jQueryのjqPlotプラグインで作る複数系列の折れ線グラフにおいて、指定したYの値に、実線と破線の水平線を描き加え、その水平線をボタン操作で移動させる方法。
実装例(サンプル)
|
実装例(サンプル)の動作について
- 「赤い実線を上へ移動」ボタンをクリックすると、赤い実線が上へ移動する。
- 「赤い実線を下へ移動」ボタンをクリックすると、赤い実線が下へ移動する。
- 「青い破線を上へ移動」ボタンをクリックすると、青い破線が上へ移動する。
- 「青い破線を下へ移動」ボタンをクリックすると、青い破線が下へ移動する。
実装例(サンプル)のソースコード
読み込み
パスは、それぞれ、アップロードした場所を指定する。
<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.canvasOverlay.min.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.jqplot.min.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.canvasOverlay.min.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.jqplot.min.css" />
読み込むファイル。
JavaScript
<script>
jQuery( function() {
jqPlotSample = jQuery . jqplot(
'jqPlot-sample',
[
[ [ 1, 83 ], [ 2, 61 ], [ 3, 79 ], [ 4, 88 ], [ 5, 62 ], [ 6, 75 ] ],
[ [ 1, 75 ], [ 2, 86 ], [ 3, 71 ], [ 4, 26 ], [ 5, 58 ], [ 6, 62 ] ],
[ [ 1, 25 ], [ 2, 52 ], [ 3, 74 ], [ 4, 63 ], [ 5, 85 ], [ 6, 96 ] ]
],
{
axes: {
yaxis: {
ticks: [ '0', '30', '70', '100' ],
}
},
canvasOverlay: {
show: true,
objects: [
{
horizontalLine: {
name: 'horizontalLineA',
y: 30,
lineWidth: 5,
color: 'red',
lineCap: 'round',
xOffset: 0.25
}
},
{
dashedHorizontalLine: {
name: 'horizontalLineB',
y: 70,
lineWidth: 2,
color: 'blue',
lineCap: 'round',
xOffset: 0.75
}
}
]
}
}
);
} );
function lineup( plot, name ) {
var co = plot . plugins . canvasOverlay;
var line = co . get( name );
line . options . y += 5;
co . draw( plot );
}
function linedown( plot, name ) {
var co = plot . plugins . canvasOverlay;
var line = co . get( name );
line . options . y -= 5;
co . draw( plot );
}
</script>
jQuery( function() {
jqPlotSample = jQuery . jqplot(
'jqPlot-sample',
[
[ [ 1, 83 ], [ 2, 61 ], [ 3, 79 ], [ 4, 88 ], [ 5, 62 ], [ 6, 75 ] ],
[ [ 1, 75 ], [ 2, 86 ], [ 3, 71 ], [ 4, 26 ], [ 5, 58 ], [ 6, 62 ] ],
[ [ 1, 25 ], [ 2, 52 ], [ 3, 74 ], [ 4, 63 ], [ 5, 85 ], [ 6, 96 ] ]
],
{
axes: {
yaxis: {
ticks: [ '0', '30', '70', '100' ],
}
},
canvasOverlay: {
show: true,
objects: [
{
horizontalLine: {
name: 'horizontalLineA',
y: 30,
lineWidth: 5,
color: 'red',
lineCap: 'round',
xOffset: 0.25
}
},
{
dashedHorizontalLine: {
name: 'horizontalLineB',
y: 70,
lineWidth: 2,
color: 'blue',
lineCap: 'round',
xOffset: 0.75
}
}
]
}
}
);
} );
function lineup( plot, name ) {
var co = plot . plugins . canvasOverlay;
var line = co . get( name );
line . options . y += 5;
co . draw( plot );
}
function linedown( plot, name ) {
var co = plot . plugins . canvasOverlay;
var line = co . get( name );
line . options . y -= 5;
co . draw( plot );
}
</script>
- axes
軸に関するオプション。
- yaxis
Y軸に関するオプション。
- ticks
Y軸上の目盛りを指定。
指定しない場合は、自動的に計算する。
- canvasOverlay
グラフに描き加える線に関するオプション。
- show
グラフに線を描き加えるか。「true」は表示。「false」は非表示。初期設定値は「false」。
- objects
描き加える線の種類ごとに、配列で指定。
- horizontalLine
水平の実線。
- name
このオーバーレイオブジェクトのオプション名。
- y
水平の実線を描き加えるYの値。
- lineWidth
水平の実線の太さ。
- color
水平の実線の色。
- lineCap
水平の実線の端の形。
- round: 円形
- butt: 四角形
- square: 四角形
- xOffset
水平方向のオフセット値。
- dashedHorizontalLine
水平の破線。
- name
このオーバーレイオブジェクトのオプション名。
- y
水平の破線を描き加えるYの値。
- lineWidth
水平の破線の太さ。
- color
水平の破線の色。
- lineCap
水平の破線の端の形。
- round: 円形
- butt: 四角形
- square: 四角形
- xOffset
水平方向のオフセット値。
HTML
<div style="margin: 5px;">
<button onclick="lineup( jqPlotSample, 'horizontalLineA' )"> 赤い実線を上へ移動 </button>
<button onclick="linedown( jqPlotSample, 'horizontalLineA' )"> 赤い実線を下へ移動 </button>
|
<button onclick="lineup( jqPlotSample, 'horizontalLineB' )"> 青い破線を上へ移動 </button>
<button onclick="linedown( jqPlotSample, 'horizontalLineB' )"> 青い破線を下へ移動 </button>
</div>
<div id="jqPlot-sample" style="height: 300px; width: 400px;"></div>
<button onclick="lineup( jqPlotSample, 'horizontalLineA' )"> 赤い実線を上へ移動 </button>
<button onclick="linedown( jqPlotSample, 'horizontalLineA' )"> 赤い実線を下へ移動 </button>
|
<button onclick="lineup( jqPlotSample, 'horizontalLineB' )"> 青い破線を上へ移動 </button>
<button onclick="linedown( jqPlotSample, 'horizontalLineB' )"> 青い破線を下へ移動 </button>
</div>
<div id="jqPlot-sample" style="height: 300px; width: 400px;"></div>