質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Chart.js

Chart.jsは、多様なグラフを組み込めるJavaScriptのライブラリ。折れ線グラフや棒グラフ、円グラフ、レーダーチャートなどのグラフの種類が用意されています。HTML5のCanvasを用いて描画され、マークアップも分かりやすく、簡単に編集することが可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

6104閲覧

chartjsの凡例を右側に表示したい

i-nr

総合スコア15

Chart.js

Chart.jsは、多様なグラフを組み込めるJavaScriptのライブラリ。折れ線グラフや棒グラフ、円グラフ、レーダーチャートなどのグラフの種類が用意されています。HTML5のCanvasを用いて描画され、マークアップも分かりやすく、簡単に編集することが可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2020/03/17 01:42

前提・実現したいこと

chartjsで折れ線グラフを作成しています。
y軸を左右に設け、凡例を右側に表示させたいです。
正しい設定方法についてご教示ください。
よろしくお願いいたします。

発生している問題・エラーメッセージ

右スケールの内側に凡例が表示されてしまいます。 (現状)左スケール|グラフ|凡例|右スケール (実現したいこと)左スケール|グラフ|右スケール|凡例

該当のソースコード

HTML

1<canvas id="chart-line" style="max-width: none"></canvas>

JS

1var ctx2 = document.getElementById("chart-line").getContext("2d"); 2 var myLineChart = new Chart(ctx2,{ 3 type: 'line', 4 data: lineData, 5 options: { 6 legend: { 7 position: 'right', 8 labels: { 9 boxWidth: 20 10 } 11 }, 12 title: { 13 display: true, 14 fontSize: 18, 15 padding: 30, 16 text: 'アクセス推移グラフ' 17 }, 18 scales: { 19 xAxes: [ 20 { 21 ticks: { 22 autoSkip: false, 23 } 24 } 25 ], 26 yAxes: [ 27 { 28 id: 'leftNumberOfPeopleYaxis', 29 type: 'linear', 30 position: 'left', 31 scaleLabel: { 32 display: true, 33 labelString: 'アクセス数・待機人数', 34 }, 35 ticks: { 36 beginAtZero: true, 37 callback: function(value) {if (value % 1 === 0) {return value;}} 38 } 39 }, 40 { 41 id: 'rightTimeYaxis', 42 type: 'linear', 43 position: 'right', 44 scaleLabel: { 45 display: true, 46 labelString: '待機時間', 47 }, 48 ticks: { 49 beginAtZero: true, 50 callback: function(value) {if (value % 1 === 0) {return value;}} 51 } 52 }, 53 ] 54 } 55 } 56 });

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

凡例を右側に

right指定されているのが、右y軸のパラメーターで、具体的なdataの値が空だからですね。

data:lineData,となっている所が外部入力なのかによりますが、、
具体的に適当な値を入力してやる事で、凡例は出現します。
data:lineData,となっている所を以下に置き換えて動作確認しました。

``` data: { labels:["8/1","8/2","8/3","8/4","8/5"], datasets:[{ label:'アクセス数・待機人数', data:[120,300,200,210,400], },{ label:'待機時間', data:[24,18,10,5,30], }] }, ``` 右y軸に別単位を当てはめる等、まだ工夫の余地はありますが、今回は聞かれてもいないことなので。。。

投稿2020/03/17 06:56

hectopascal1013

総合スコア466

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

i-nr

2020/03/17 07:13

ご回答ありがとうございます! 表示はされるのですが、右y軸よりも内側に表示されてしまいます。 右y軸よりも外側に表示させる方法はありますか?
hectopascal1013

2020/03/17 07:35 編集

確認環境(OS,バージョン,ブラウザの種類・バージョンなど情報が足りないのでなんとも。こちらの環境ではおっしゃられている状況が再現できていません。 老婆心ながら、ドットインストールの無料講座にてchart.jsは公開されておりますので、 今回疑問に思われていることも、こちらを学習することで解決できるかもしれません。 https://dotinstall.com/lessons/basic_chartjs
i-nr

2020/03/17 11:10

環境についての記載がなく、失礼しました。 OS: mac 10.14.6、ブラウザ:Chrome 80.0.3987.132 です。 ドットインストールの講座も見てみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問