Q&A
前提
Chart.jsを用いてグラフを描画するに当たってデータセットをjsonファイルから読み込みたいのですが、グラフが描画できません。
実現したいこと
jsonファイルから読み込めるようにする
発生している問題
インターネットで検索をしたところ、以下のような記事がヒットしました。
https://stackoverflow.com/questions/44990517/displaying-json-data-in-chartjs
この記事では、html内にjsonを記すことで解決しています。ですが、私は外部のjsonファイルから読み込みたく以下のようなコードに変更しました。が、描画できずに困っています。
該当のソースコード
html
1 <script> 2 fetch('save.json') 3 .then(response => response.json()) 4 .then(data => { 5 // dataは[{"date":"2023-01-23","count":570199}]の形式 6 let labels = data.map(obj => obj.date); 7 let counts = data.map(obj => obj.count); 8 var ctx = document.getElementById("myLineChart"); 9 var myLineChart = new Chart(ctx, { 10 type: 'line', 11 data: { 12 labels: labels, //['2022-01-23', '3333-12-31'], 13 datasets: [ 14 { 15 label: 'ブロックした人数', 16 data: counts, //[570199, 580000], 17 borderColor: "rgba(255,0,0,1)", 18 backgroundColor: "rgba(0,0,0,0)" 19 } 20 ], 21 }, 22 options: { 23 title: { 24 display: true, 25 text: 'データ元: ぶろるっく' 26 }, 27 scales: { 28 yAxes: [{ 29 ticks: { 30 /* 31 suggestedMin: 0, 32 stepSize: 100000, 33 minRotation: 0, // ┐表示角度水平 34 maxRotation: 0, // ┘ 35 */ 36 autoSkip: true, 37 callback: function(value, index, values){ 38 return value + '人' 39 } 40 } 41 }] 42 }, 43 } 44 }); 45 </script>
試したこと
- 上記の記事だと、scriptタグ内のjavascriptをそのまま編集していましたが、jsonファイルから読み込みたいので、
fetch
を使用して取得するようにしたが、描画できず - save.jsonをブラウザからアクセスできるようにしたが、描画できず
その他
ChatGPTへの質問は見当違いなものが返ってくるので行っておりません。初心者質問で申し訳ありませんかどうかよろしくお願い致します。
あなたの回答
tips
プレビュー