chart.jsを使ってグラフを表示する機能を実装しています。
chart.jsのドキュメントを一通り見ましたが見つからなかったので質問させていただきます。
下の画像の黄色領域のように、ある境界線(左から数えて7つ目の予定)から奥までを任意の色で埋めることはchart.jsの機能で可能でしょうか?
この質問の画像の右領域に色がつくイメージです。
chart.jsのバージョンは2.5.0です。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答1件
0
自己解決
この質問を参考にcanvasに直接描画する方法で解決しました。
以下コード
javascript
1var chartData = { 2 labels : xLabels, // x軸ラベル 3 datasets : datasets, // データ値など 4 lineAtIndex: 6, // 境界線を表示するインデックス 5}; 6 7// オプション類 8var options = { 9 ・ 10 ・ 11 ・ 12}; 13 14// グラフ描画(拡張) 15var ctx = document.getElementById("graph").getContext("2d"); 16var originalLineDraw = Chart.controllers.line.prototype.draw; 17Chart.helpers.extend( 18 Chart.controllers.line.prototype, 19 { 20 draw: function() { 21 // 元々の線グラフを描画 22 originalLineDraw.apply(this, arguments); 23 24 var chart = this.chart; 25 var ctx = chart.chart.ctx; 26 27 var index = chart.config.data.lineAtIndex; 28 if (index) { 29 var xaxis = chart.scales['x-axis-0']; 30 var yaxis = chart.scales['y-axis-0']; 31 32 // 境界線描画 33 ctx.save(); 34 ctx.beginPath(); 35 ctx.moveTo(xaxis.getPixelForValue(undefined, index), yaxis.top); // 描画開始位置 36 ctx.strokeStyle = '#ff0000'; 37 ctx.lineTo(xaxis.getPixelForValue(undefined, index), yaxis.bottom); // 描画終了位置 38 ctx.stroke(); 39 ctx.restore(); 40 41 // 四角形描画 42 ctx.save(); 43 ctx.fillStyle = "rgba(255, 255, 0, 0.05)"; //塗りつぶす色 44 ctx.fillRect( 45 xaxis.getPixelForValue(undefined, index), // x座標 46 yaxis.top, // y座標 47 xaxis.width, // 幅 48 yaxis.height // 高さ 49 ); 50 ctx.restore(); 51 } 52 } 53 } 54); 55new Chart( 56 ctx, 57 { 58 type : "line", 59 data : chartData, 60 options : options, 61 } 62);
投稿2017/03/01 13:19
編集2017/03/01 13:21総合スコア606
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。