Highcharts を使う
更新: 2022/5/3

 Highcharts は、2009年に最初にリリースされた JavaScriptで記述されたチャート作成用のソフトウェア ライブラリ(有償/無償)です。 demoサイト  参考1  参考2  参考3

■ Highcharts の利用準備

 Highcharts を使ってグラフを描くには、次の方法の何れかでHighcharts が機能するように組み込む必要があります。
  1. Highcharts ファイルをダウンロードして使う。 参考1
  2. CDN サイトにリンクを張って利用する。 CDN サイト
    引用記述例: <script src="https://code.highcharts.com/highcharts.js"></script>

   【 highcharts 記述の基本 】 ① highcharts.js の読込 ② 表示領域確保 ③ グラフの作成 で構成  参考
   

■ 簡単な highcharts ページ 1

 具体的な highcharts グラフページは、以下のようになります。  別頁で表示  参考
  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta charset="UTF-8">
  5. <script src="https://code.highcharts.com/highcharts.js"></script><!-- highcharts.js 読込 -->
  6. </head>
  7. <body>
  8. <div id="hchart" style="width:405px; height:290px; border:solid 1px;"></div><!-- 表示領域 -->
  9. <script>
  10. mychart = new Highcharts.Chart( { // グラフを作成
  11. chart :{ renderTo : "hchart"}, // 出力先 id を指定
  12. title: {text: 'サンプルグラフ'}, // グラフを作成
  13. xAxis: { title: {text: '横軸名'} }, // 横軸タイトル
  14. yAxis: {title: {text: '縦軸名'}}, // 縦軸タイトル
  15. series: [ // データ系列を記載
  16. {name: "sqrt2", data:[1,4,1,4,2]} , // データ系列1を記載
  17. {name: "sqrt3", data:[1,7,3,2,0]} , // データ系列2を記載
  18. ]
  19. });
  20. </script>
  21. </body>
  22. </html>
 概要 1. hicharts.js を呼び込みます。(5行目)、
    2. id="hchart" のグラフ表示領域を用意します。(8行目)、
    3. Highcharts.Chart グラフの利用を記述します。(10行目)、
    4. chart の表示領域(ID)を指定(11行目)し、具体的なパラメータを記述します。(12-18行目)

■ 簡単な highcharts ページ 2

 縦棒グラフを jQuery も使って書くと、以下のようになります。  別頁で表示  参考
  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta charset="UTF-8">
  5. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  6. <script src="https://code.highcharts.com/highcharts.js"></script><!-- highcharts.js 読込 -->
  7. </head>
  8. <body>
  9. <div id="hchart" style="width:405px; height:290px; border:solid 1px;"></div><!-- 表示領域 -->
  10. <script>
  11. $(function () {
  12. $('#hchart').highcharts({
  13. chart: { type: 'column' }, // グラフの種類
  14. title: {text: 'サンプルグラフ 2'}, // グラフを表題
  15. xAxis: { title: {text: '横軸名'}, categories: ['1桁', 'R1', 'R2', 'R3', 'R4'] }, // 横軸タイトル
  16. yAxis: { title: {text: '縦軸名'} }, // 縦軸タイトル
  17. series: [ // データ系列を記載
  18. {name: "sqrt2", data:[1,4,1,4,2]} , // データ系列1を記載
  19. {name: "sqrt3", data:[1,7,3,2,0]} , // データ系列2を記載
  20. ]
  21. });
  22. });
  23. </script>
  24. </body>
  25. </html>
 概要 1. jquery を呼び込み(5行目)、 hicharts.js を呼び込みます。(6行目)、
    2. id="hchart" のグラフ表示領域を用意します。(9行目)、
    3. #hchart に highcharts の利用を記述します。(12行目)、
    4. 縦棒グラフ(column) を表示します。(13行目)、
    5. そのほかの詳細なパラメータを記述します。(14-20行目)

■ highcharts ページ 3

 ローカル csv ファイルを読込んでグラフを書くことも可能です。( この例はローカルファイル data.csv の読込を想定している )  別頁で表示  参考
  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta charset="UTF-8">
  5. <script src="https://code.highcharts.com/highcharts.js"></script><!-- highcharts.js 読込 -->
  6. <script>
  7. function init(){
  8. var file = document.querySelector('#getfile');
  9. file.onchange = function (){
  10. var fileList = file.files;
  11. var reader = new FileReader();
  12. reader.readAsText( fileList[0] ); // 1) csv データの取り込み
  13. reader.onload = function() {
  14. datas = csvArray( reader.result );// 2) CSVデータ変換の呼び出し
  15. draw( datas ); // 3) データ準備、描画の呼び出し
  16. };
  17. }; // file.onchange ++++
  18. function draw( datas ) { // グラフを描く
  19. options = {
  20. chart :{ renderTo : "container" }, // グラフ出力先を指定
  21. title : {text: "グラフタイトル"}, // グラフタイトルを指定
  22. xAxis : {title: {text: "桁数"}}, // x軸のラベルを指定
  23. yAxis : {title: {text: "数値"}} // y軸のラベルを指定
  24. } // options // ++++++
  25. let dats =[]; // 表示するデータを作成
  26. for( let i =0; i<datas.length; i++){
  27. let aa = new Object();
  28. aa.name = datas[i][0];
  29. let bb = datas[i]; bb.shift(); // 1列目を削除した配列
  30. aa.data = bb;
  31. dats.push( aa ); // 連想配列の配列を作成
  32. };
  33. options['series'] = dats; // options に作成したデータを追加
  34. chart = new Highcharts.Chart( options ); // グラフを作成
  35. }; // draw( ) ++++++++++
  36. function csvArray( str ) { // 読込み csv を配列化
  37. var Nam = []; var csvData = [];
  38. var ist = 0; // ist行目(i=ist)から読込み
  39. var lines = str.split("\r\n"); // 各行に分割
  40. for (var i = ist; i < lines.length ; i++ ) { // ist行目(i=ist)から最後まで読込み
  41. var dat = lines[i].split(",");
  42. csvData[i] = [];
  43. csvData[ i - ist ][0] = dat[0] ;
  44. for (let j = 1; j < dat.length; j++ ){
  45. csvData[ i - ist ][j] = Number( dat[j] );
  46. }
  47. };
  48. return csvData;
  49. }; // csvArray() ++++++++++
  50. }; // init() ++++++++++
  51. </script>
  52. </head>
  53. <body onload="init();">
  54. (<a href="data.csv" target="_blank" title="data.csv の具体例">data.csv</a>) <input type="file" id="getfile" accept="text/csv" >
  55. <div id='container' style="width:415px; height:260px; border:solid 1px;"></div><!-- 表示領域 -->
  56. </body>
  57. </html>
 概要 1. hicharts.js を呼び込みます。(5行目)、
    2. id="getfile" の input ボタンを指定し、指定すると起動します。(8-9行目)、
    3. 指定ファイルを読込み、利用に合った csv データに整形します。(12,14行目)、
    4. 整形した csv データを基にグラフを表示します。(15行目)、
    5. 折れ線グラフを表示する関数で(18行目)、データを成型後グラフを作成します。(36行目)
    6. 読込み csv を配列化する関数で(39行目)、各行初列以外を数値化して作成します。(46-49行目)
    7. ファイル読み込みボタンと(57行目)、グラフ表示領域(58行目)を用意します。

■ 色々な highcharts グラフ

  hicharts の複合グラフの例です。 別窓表示  参考

■ 参考サイト