商品の比較に使用するため、同一ページにレーダーチャートを複数設置したいです。
「chart.js」を使用しています。
複数のレーダーチャートを設置するため、現在以下のようなコードになっております。
html
1<!doctype html> 2<html lang="ja"> 3 4<head> 5 <meta charset="utf-8"> 6 <title></title> 7 <link rel="stylesheet" href="style.css"> 8 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 9 <script src="Chart.js"></script> 10 <script> 11 $(function(){ 12 var ctx = document.getElementById("myChart01").getContext('2d'); 13 var myChart01 = new Chart(ctx, { 14 type: 'radar', 15 data: { 16 labels: ["価格", "品質", "セキュリティ", "デザイン", "ブランド力", "アフターサービス"], 17 datasets: [{ 18 data: [1, 2, 3, 4, 3, 2], 19 backgroundColor: 'rgba(3,169,244,0.3)', 20 borderColor: 'rgba(3,169,244,1.0)', 21 pointBackgroundColor: 'rgba(3,169,244,0.8)', 22 borderWidth: 1 23 }] 24 }, 25 options: { 26 legend: { 27 display: false 28 }, 29 scale: { 30 ticks: { 31 stepSize: 1, 32 max: 5, 33 beginAtZero: true, 34 } 35 } 36 } 37 }); 38 39 var ctx = document.getElementById("myChart02").getContext('2d'); 40 var myChart02 = new Chart(ctx, { 41 type: 'radar', 42 data: { 43 labels: ["価格", "品質", "セキュリティ", "デザイン", "ブランド力", "アフターサービス"], 44 datasets: [{ 45 data: [3, 3, 3, 3, 3, 2], 46 backgroundColor: 'rgba(3,169,244,0.3)', 47 borderColor: 'rgba(3,169,244,1.0)', 48 pointBackgroundColor: 'rgba(3,169,244,0.8)', 49 borderWidth: 1 50 }] 51 }, 52 options: { 53 legend: { 54 display: false 55 }, 56 scale: { 57 ticks: { 58 stepSize: 1, 59 max: 5, 60 beginAtZero: true, 61 } 62 } 63 } 64 }); 65 }); 66 </script> 67</head> 68 69<body> 70 71 <section class="clearfix"> 72 <h1>商品1</h1> 73 <article class="artImg"><img src="sample01.jpg" alt="商品画像"></article> 74 <article class="artTxt">商品1説明</article> 75 <article class="artGrp"> 76 <canvas id="myChart01" width="100%" height="100%"></canvas> 77 </article> 78 </section> 79 80 <section class="clearfix"> 81 <h1>商品2</h1> 82 <article class="artImg"><img src="sample02.jpg" alt="商品画像"></article> 83 <article class="artTxt">商品2説明</article> 84 <article class="artGrp"> 85 <canvas id="myChart02" width="100%" height="100%"></canvas> 86 </article> 87 </section> 88</body> 89 90</html>
これ以降もレーダーチャートが増えるため、コードが長くなってしまいます。
少しでもコードを短く、見やすくするためにオプションを纏めて設定する事は可能でしょうか?
やりたい事は全部で3つあります。
①レーダーチャートのデザインは統一のため、オプションをまとめて設定したい。
②「アフターサービス」が長いので「アフター<br>サービス」のように改行して表示したい。
③レーダーチャートのラベルの線の色、太さを変更したい。
※「backgroundColor」や「borderColor」で設定出来るボーダーではなく、その後ろの六角形の線の部分です。
各プロパティは確認しましたが六角形のラベルの線の色を変更するプロパティはないようでした。
参考:https://misc.0o0o.org/chartjs-doc-ja/charts/radar.html
また、改行について以下を参考にしましたが、
参考:https://teratail.com/questions/72208
こちらでベストアンサーに選ばれている方法はコードが変わったのかテキスト出力の部分が検索で出て来ず、試すことが出来ませんでした。
回答3件
あなたの回答
tips
プレビュー