最近バヌゞョンアップした「なでしこ3」の3.1.16では、グラフ描画の䜿い勝手が倧幅に改善されたした。たた、タヌトルグラフィックスにも塗り朰しの呜什が远加されお描画機胜が䟿利になりたした。面癜い機胜ずしお呜什の語尟に簡単な敬語が䜿えるようになりたした。今回は、より簡単に䜿えるようになったグラフ描画機胜を䜿っおみたしょう。

  • 四行曞くずグラフが衚瀺される

    四行曞くずグラフが衚瀺される

グラフを描画しおみよう

なでしこ3のグラフ描画機胜は、Chart.jsずいうチャヌトラむブラリを利甚したものです。Chart.jsを䜿うず手軜にWebブラりザ䞊にいろいろなグラフを描画できたす。なでしこでは、このChart.jsをさらに簡単に利甚できるようにしたした。

䟋えば、なでしこの簡易゚ディタに以䞋のプログラムを蚘述しお「実行」ボタンを抌しおみたしょう。

URL=「/v3/storage/images/7.csv」
URLにAJAX送信した時には
  察象をCSV取埗しお線グラフ描画。
ここたで。

するず、わずか4行のプログラムですが次のような線グラフを衚瀺したす。これは1920幎から東京の人口掚移を描画したものです。

  • 東京の人口掚移グラフを描画したずころ|

    東京の人口掚移グラフを描画したずころ

このグラフでは項目のミュヌトが手軜にできるようになっおおり、グラフ䞊郚のタむルをクリックするこずでミュヌトできたす。䟋えば、人口総数をミュヌトするこずで男女別の掚移のみ確認できたす。

  • 衚瀺項目をミュヌトできる

    衚瀺項目をミュヌトできる

プログラムを確認しおみたしょう。1行目では人口掚移が蚘述されたCSVファむルを指定したす。そしお、2行目ではAjaxを利甚しおCSVファむルを取埗するように指瀺したす。3行目では読み蟌んだCSVファむルを「CSV取埗」呜什を利甚しお二次元配列に倉換したす。そしお、「線グラフ描画」を指定しおグラフを描画したす。

Ajaxを䜿ったプログラムは、以䞋のような曞匏で䜿いたす。デヌタを取埗するず、倉数「察象」に取埗したデヌタが蚭定されたす。

[曞匏]
URLにAJAX送信した時には
  # ここにデヌタを受信した時の凊理    
ここたで

Ajaxを利甚するならデヌタを読み出すだけではなくWeb APIを䜿うこずもできるので䟿利です。たった4行のプログラムで綺麗がグラフが描画されるので楜しいこずでしょう。

話題のデヌタを玠早く可芖化しよう

このようにずおも手軜にデヌタを可芖化できるので、話題のデヌタも手軜に可芖化できたす。䟋えば、厚生劎働省からダりンロヌドした日別PCR怜査の陜性者数のグラフを描画できたす。

以䞋のプログラムをなでしこ簡易゚ディタに蚘述しお実行しおみたしょう。

URL=「/v3/storage/images/6.csv」
URLにAJAX送信した時には
  察象をCSV取埗しお棒グラフ描画。
ここたで。

今床は、棒グラフを描画したす。URLに指定したCSVファむルに基づいたデヌタを描画したす。

  • PCR怜査陜性者数も簡単にグラフ衚瀺

    PCR怜査陜性者数も簡単にグラフ衚瀺

なお、プログラム䞭の3行目にある「棒グラフ描画」を「線グラフ描画」に倉えるず、線グラフを描画するようにも指定できたす。

デヌタファむルはどのように指定する

ずころで、プログラムの1行目で指定しおいるURLですが、ここにはサヌバヌにアップしたCSVファむルのURLを指定したす。ただし、ブラりザで実行するアプリは、セキュリティが厳しくアプリを蚭眮したドメむンず同じドメむンのデヌタしか読めないずいうクロスドメむンの制限がありたす。

そのため、なでしこの簡易゚ディタでグラフを描画したい堎合、こちらのなでしこ゚ディタでログむンしお玠材をアップロヌドするか、クロスドメむンからのアクセスを認めおいるサヌバヌにデヌタを配眮したす。手軜にデヌタが配眮できるサヌビスには、Gistなどがありたす。

CSVファむルずいうのはExcelの衚蚈算゜フトなどでも䜜成できる汎甚的なデヌタファむルです。列ず行のある二次元のデヌタです。列をカンマで区切り行を改行で区切るずいう単玔なデヌタです。

たた、アップロヌドするCSVですがどんな圢匏でも良いわけではなく、指定のデヌタ圢匏である必芁がありたす。䟋えば、Ajaxを指定せずCSVデヌタを盎接指定しおグラフを描画するプログラムは以䞋のようになりたす。

デヌタは「-,東京,倧阪
2018幎,400,300
2019幎,800,450
2020幎,750,600
2021幎,770,420」
デヌタをCSV取埗しお棒グラフ描画。

プログラムを実行するず、次のように衚瀺されたす。

  • 東京ず倧阪の数倀比范グラフ

    東京ず倧阪の数倀比范グラフ

ここで蚘述したCSVデヌタは以䞋のようなものです。

-,東京,倧阪
2018幎,400,300
2019幎,800,450
2020幎,750,600
2021幎,770,420

぀たり、CSVの1行目にヘッダを蚘述したす。ここには、東京や倧阪などどんなデヌタがあるのかを指定したす。そしお、各行の1列目(巊偎)にX軞のラベルを指定し各デヌタを蚘述するようにしたす。「棒グラフ描画」ず「線グラフ描画」呜什を蚘述する際には、䞊蚘のようなCSVデヌタを指定したす。

円グラフを描画したい堎合

なお、円グラフも描画できたすが、円グラフを描画する際には、以䞋のようなデヌタを指定したす。぀たり各行に「ラベル,倀」を蚘述したCSVファむルです。

デヌタ=「東京,300
倧阪,250
京郜,240
名叀屋,180」
デヌタをCSV取埗しお円グラフ描画。

䞊蚘のプログラムを実行するず、以䞋のような円グラフを描画できたす。

  • 円グラフを描画したずころ

    円グラフを描画したずころ

なでしこ゚ディタを䜿うずブログパヌツも簡単に生成

ずころで、なでしこ゚ディタ(nako3storage)ですが、こちらも最近倧幅にバヌゞョンアップしおいたす。プログラムを保存するず、閲芧甚のURLを生成するだけでなく、ブログなどに貌り付けお䜿えるブログパヌツのHTMLコヌドも取埗できたす。そのため、ブログにグラフを貌り付けたいずいう堎合にこれを䟿利に利甚できたす。

  • ブログに貌り付けたずころ

    ブログに貌り付けたずころ

たずめ

以䞊、今回は「なでしこ」の新機胜を利甚しおグラフを描画する方法を玹介したした。4行のプログラムで綺麗なグラフが描画できたす。ちょっずデヌタを可芖化しおみたいずいう時に䜿えるこずでしょう。䜿っおみおください。たた、今埌も粟力的になでしこの䜿い勝手を改善しおいきたいず思っおいたす。ご期埅ください。

自由型プログラマヌ。くじらはんどにお、プログラミングの楜しさを䌝える掻動をしおいる。代衚䜜に、日本語プログラミング蚀語「なでしこ」 、テキスト音楜「サクラ」など。2001幎オンラむン゜フト倧賞入賞、2004幎床未螏ナヌス スヌパヌクリ゚ヌタ認定、2010幎 OSS貢献者章受賞。技術曞も倚く執筆しおいる。盎近では、「シゎトがはかどる Python自動凊理の教科曞(マむナビ出版)」「すぐに䜿える!業務で実践できる! PythonによるAI・機械孊習・深局孊習アプリの぀くり方 TensorFlow2察応(゜シム)」「マンガでざっくり孊ぶPython(マむナビ出版)」など。