LoginSignup
2
3

More than 5 years have passed since last update.

jqPlotでつくった折れ線グラグのX軸を日付にする方法

Posted at

Screen Shot 2017-08-14 at 22.06.32.png
jqPlot Charts and Graphs for jQuery

X軸が日付の折れ線グラフを作ります。
Screen Shot 2017-09-18 at 23.13.41.png

  • 環境
    • OS : macOS Sierra Version 10.12.6
    • ブラウザ : Chrome Version 59.0.3071.115 (Official Build) (64-bit)
    • JQuery : 1.9.1
    • jqPlot : 1.0.9

1. 日付をXに持つデータでjqPlotで折れ線グラフを作る

Screen Shot 2017-09-18 at 23.08.39.png

日付を理解してもらえずX軸の値が消えました。

html
<!DOCTYPE html>
<html>
<head>
    <title>MyJqPlot</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/jquery.jqplot.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.dateAxisRenderer.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.canvasTextRenderer.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
    <script type="text/javascript" src="js/myJqPlot.js"></script>
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/jquery.jqplot.min.css">
</head>
<body>
    <div id="chart" style="height: 300px; width: 500px; margin: 30px"></div>
</body>
</html>
myJqPlot.js
var allSeries = [
  [['2017-09-01', 83 ], ['2017-09-02', 61 ], ['2017-09-02', 79 ], ['2017-09-03', 88 ], ['2017-09-04', 62 ], ['2017-09-05', 75 ]]
];

var options = {
  title: 'jqPlotでつくった折れ線グラグのX軸を日付にする方法',
};

$(document).ready(function(){
  $.jqplot("chart", allSeries, options);
});

2. DateAxisRendererプラグインで日付を表示する

Screen Shot 2017-09-18 at 23.10.22.png

:arrow_double_down:こちら:arrow_double_down:を参考に作りました。
Date Axes

html
<!-- 省略:変更なし -->
    <script scr="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.dateAxisRenderer.min.js"></script>
    <script type="text/javascript" src="js/myJqPlot.js"></script>
<!-- 省略:変更なし -->
myJqPlot.js
<!-- 省略:変更なし -->
var firstXaxis = {
  renderer:$.jqplot.DateAxisRenderer
};

var options = {
  title: 'jqPlotでつくった折れ線グラグのX軸を日付にする方法',
  axes: {
    xaxis:firstXaxis
  }
};
<!-- 省略:変更なし -->

axes: 軸に関するオプション。
xaxis: X軸に関するオプション。
jQuery の jqPlot プラグインのオプション一覧

3. 日付のフォーマットを「yyyy-MM-dd」形式に設定する

Screen Shot 2017-09-18 at 23.11.46.png

myJqPlot.js
<!-- 省略:変更なし -->
var firstXaxis = {
  renderer:$.jqplot.DateAxisRenderer,
  tickOptions: {
    formatString: '%F'
  }
};
<!-- 省略:変更なし -->

tickOptions: 目盛りに関するオプション。
formatString: 目盛りのラベルの形式を指定。
jQuery の jqPlot プラグインのオプション一覧

フォーマットの書き方はこちら

4. CanvasTextRendererとCanvasAxisTickRendererプラグインで日付を斜めに表示する

Screen Shot 2017-09-18 at 23.13.41.png

:arrow_double_down:こちら:arrow_double_down:を参考に作りました。
Axis Labels and Rotated Text

html
<!-- 省略:変更なし -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.canvasTextRenderer.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqPlot/1.0.9/plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
    <script type="text/javascript" src="js/myJqPlot.js"></script>
<!-- 省略:変更なし -->
myJqPlot.js
<!-- 省略:変更なし -->
var firstXaxis = {
  renderer:$.jqplot.DateAxisRenderer,
  rendererOptions: {
    tickRenderer: $.jqplot.CanvasAxisTickRenderer
  },
  tickOptions: {
    formatString: '%F',
    angle: -45
  }
};
<!-- 省略:変更なし -->

tickRenderer: 目盛りラベルの生成編集に使うプラグインを指定。
angle: 目盛りラベルの角度。
jQuery の jqPlot で作る折れ線グラフの目盛りラベルの角度を調整

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3