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

![Screen Shot 2017-08-14 at 22.06.32.png](https://qiita-image-store.s3.amazonaws.com/0/159761/582a8b9c-e947-56b7-ac0c-b7f3998c6825.png)
[jqPlot Charts and Graphs for jQuery](http://www.jqplot.com/index.php)

X軸が日付の折れ線グラフを作ります。
![Screen Shot 2017-09-18 at 23.13.41.png](https://qiita-image-store.s3.amazonaws.com/0/159761/59798487-9bc4-fadf-7373-74428065689c.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](https://qiita-image-store.s3.amazonaws.com/0/159761/347c2fc4-db6d-0246-d6b4-ff0ba69897f3.png)

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

```html: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>
```

```JavaScript: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](http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html)プラグインで日付を表示する
![Screen Shot 2017-09-18 at 23.10.22.png](https://qiita-image-store.s3.amazonaws.com/0/159761/7dcb84b4-77d6-6b28-2d8e-c07d7b883e99.png)

:arrow_double_down:こちら:arrow_double_down:を参考に作りました。
[Date Axes](http://www.jqplot.com/examples/date-axes.php)

```html: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>
<!-- 省略:変更なし -->
```
```javaScript:myJqPlot.js
<!-- 省略:変更なし -->
var firstXaxis = {
  renderer:$.jqplot.DateAxisRenderer
};

var options = {
  title: 'jqPlotでつくった折れ線グラグのX軸を日付にする方法',
  axes: {
    xaxis:firstXaxis
  }
};
<!-- 省略:変更なし -->
```
> axes: 軸に関するオプション。
> xaxis: X軸に関するオプション。
> [jQuery の jqPlot プラグインのオプション一覧](http://alphasis.info/2012/02/jquery-plugin-jqplot-options/)


### 3. 日付のフォーマットを「yyyy-MM-dd」形式に設定する
![Screen Shot 2017-09-18 at 23.11.46.png](https://qiita-image-store.s3.amazonaws.com/0/159761/fc721ea4-8f44-5106-8d2a-4849727d7d01.png)

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

> tickOptions: 目盛りに関するオプション。
> formatString: 目盛りのラベルの形式を指定。
> [jQuery の jqPlot プラグインのオプション一覧](http://alphasis.info/2012/02/jquery-plugin-jqplot-options/)

[フォーマットの書き方はこちら](http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html)

### 4. CanvasTextRendererと[CanvasAxisTickRenderer](http://www.jqplot.com/docs/files/plugins/jqplot-canvasAxisTickRenderer-js.html)プラグインで日付を斜めに表示する
![Screen Shot 2017-09-18 at 23.13.41.png](https://qiita-image-store.s3.amazonaws.com/0/159761/a2493fed-5ff3-d60f-00f6-5ac02a2b1077.png)

:arrow_double_down:こちら:arrow_double_down:を参考に作りました。
[Axis Labels and Rotated Text](http://www.jqplot.com/examples/axisLabelsRotatedText.php)

```html: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>
<!-- 省略:変更なし -->
```
```javaScript:myJqPlot.js
<!-- 省略:変更なし -->
var firstXaxis = {
  renderer:$.jqplot.DateAxisRenderer,
  rendererOptions: {
    tickRenderer: $.jqplot.CanvasAxisTickRenderer
  },
  tickOptions: {
    formatString: '%F',
    angle: -45
  }
};
<!-- 省略:変更なし -->
```

> tickRenderer: 目盛りラベルの生成編集に使うプラグインを指定。
> angle: 目盛りラベルの角度。
> [jQuery の jqPlot で作る折れ線グラフの目盛りラベルの角度を調整](http://alphasis.info/2012/03/jquery-plugin-jqplot-line_charts-tickoptions-angle/)