はじめに
こんにちは、自動化大好きまっきーです。今回はKNIMEで円グラフ・ドーナツグラフを作る方法について解説したいと思います。KNIMEはAnalytics Platformなので、解析に必要なツールが揃っています。またデータ量の大きいデータを扱うことにも優れています。
データの見える化(Visualization)は、データから気づきを得るための第一歩です。もしこのデータがデータ量の小さい簡単なグラフ化が必要なだけであれば、Excelでいいと思いますが、データ量が大きくなってくるとグラフ化は大変ですよね。そこでKNIMEでグラフ化まで行ってしまってデータの前処理、グラフ化まで一緒に行ってしまおうというのが意図です。データの解析を行う人にとってはいい機能なのではないでしょうか。
また、KNIME Server等のサービスを用いれば、Web Applicationとしてデータを直接扱わない人でもWeb上でデータのフィルタリング、グラフ化、抽出が可能になります。
個人的には、”多くの人に見せるため”のグラフ化はPowerBI等のBIツールを使用すべきかなと思っていますが、、
前置き長くなりました、早速見ていきましょう!
今回のテーマ ~Pie/Donut Chart~
Workflowは下記からダウンロードできます。
前回棒グラフについて解説しました。このときKNIMEのグラフ化の基礎についてかなり触れているので、まだ見ていない方はぜひこちらを目を通していただけると、スムーズに使えるようになると思います。
覚えてほしいこと
「全体に対する割合を強調したい場合」は円グラフ
事前準備
前回、棒グラフ編で使ったデータと同じデータを例として使用します。
事前にこんなOutputのテーブルを準備しました。今までのTrainingが習得できていれば、今までのWorkflowをコピペしてから改変するだけで作れると思います。
今までのTrainingなんて知らん!って人は、Table Createrで直接下のようなTableを作っていただいてOKです。
やりたいこと
元テーブルの残業時間のデータと部署のデータを使って、残業時間の部署ごとの割合を円グラフ・ドーナツグラフで見せてみます。
これにより、会社全体の残業時間のうちどの部署が残業時間が多いのかが相対的に分かります。
もちろんこれはかなり乱暴な例です。本来残業時間は合計値(絶対量)で表されるべきだと思うので、割合で表示するのはいかがかなとは思おうのですが、これは例なので、ご容赦ください。。
Pie/Donut Chartの使い方
そもそも大前提として、円グラフを使うべきポイントですが、円グラフを選ぶべき時は、「全体に対する割合を強調したい場合」です。シェアが何%ですというようなことを示すべき場合とかですかね。GroupByされるイメージになるので、凡例になる種類が少ないほど見やすくなります。
円グラフもドーナツグラフも穴が空いているかどうかくらいしか違いがないので、一緒に解説しちゃいます。
Workflow
円グラフを作りたいテーブルと直接くっつけるだけです。
Confirm - Pie Chart / Donut Chart
こんな感じで、円グラフもドーナツグラフも違いはないですね。勝手に割合を計算してくれます。
グラフの出し方はこちらを参照してください。
Configure - 円グラフ
まずは円グラフの場合です。
Step1 -Category Column 凡例を選ぶ
まずは分類したいコラムを選択します。このコラムが凡例になります。棒グラフでは横軸でしたね。
今回は部署ごとの残業時間の割合を出したいので、「部署」のコラムを選択しています。
Step2 - Aggregation Method 値のコラムを選ぶ
次に値のコラムを選択します。3種類選択できます。棒グラフの時と内容は同じですが再掲します。
- Occurence Count - Category Columnで選択した列の値の出現回数のカウント
- Sum - Frequency Columnで選択した数値コラムの値の合計
- Average - Frequency Columnで選択した数値コラムの値の平均
今回は、残業時間の合計値をまとめたいので、「残業時間」のコラムを下にあるFrequency Columnの部分で選択します。
チェックしてONにできるちょっとした機能
下の項目をチェックするとちょっとした機能を追加することができます。
Process in memory:メモリを使用するので実行が少し早くなります。その代わりメモリがより必要になります。
Report on missing values:チェックをつけると、欠損値が含まれていた場合に警告が出ます。チェックをつけないと、欠損値は全て無視され、次に出てくるMissing value categoryも使えなくなります。
Include 'Missing values' category:チェックを入れると、横軸に欠損値のみをまとめて示します。
Step3 - General Plot Option グラフのプロパティ
ここからは任意の項目になります。
3つ目のタブ”General Plot Option”では、グラフのプロパティのような設定が可能です。
続いて、グラフのプロパティの部分です。
Title: グラフのタイトル
Subtitle:グラフのサブタイトル
Use row colors:行にあらかじめ割り振られた色を使用する(まだ解説したことがありませんが、Color ManagerというNodeがあります。)
Display Legend:凡例を表示します。
Show labels:データラベルを表示します。
Step4 - label type データラベルの表示方法
Label Type
続いてデータラベルの表示方法の設定です。百聞は一見にしかずだと思うので、下の図を見てもらえれば3つの選択肢の違いがわかると思います。
- Key:凡例をデータラベルとして表示
- Value:値をデータラベルとして表示
- Percentage:割合をデータラベルとして表示
Label Threshold
この設定では、閾値を設定できます。それ以下の割合だった場合はそのデータラベルを表示しないというものです。
細かい数字の場合、データラベルを全て表示してしまうとグラフがかなり汚くなってしまいますよね。円グラフはその他として括ると思います。
例えば、0.25に設定すると、25%ということなので、25%以下のデータラベルは表示されなくなります。これは、割合を基準として決定されるので、Value Typeがその他の設定だったとしても、同じように表示されなくなります。
Configure - ドーナツグラフ
ドーナツグラフの作り方は基本円グラフと変わりません。Step3 のGeneral Plot Option の中にある一部の設定を変更します。
Plot donut chart :チェックを入れると、円グラフがドーナツグラフに変わります。
Donut Hole Ratio:真ん中の円の大きさを比率で決めます。
Title inside donut:円の中心に記入する文字を入力します。
ちょっと一言
その他のOption
グラフ系のConfigureは選択肢が多いように見えますが、基本設定しなくていいものです。一応他のOptionも見ていきましょう。
General Plot Options
- Display fullscreen button:全画面表示のオプションのボタンが表示されるようになります。KNIME serverでWebに発行された時に使えます。
- Image:画像出力するときに使う設定です。ピクセルサイズの設定ですかね
- Show warnings in view:警告文を検知した時に画面に表示するオプションです。
Control Options
棒グラフと同じで、グラフ表示しているときにプロパティを変えることができるようにするオプションです。
Enable view controls:グラフ表示しているときにプロパティを変えることができるようになります。
Enable title editing:タイトルを編集できるようになります。
Enable subtitle editing:サブタイトルを編集できるようになります。
Enable pie / donut toggle:円グラフとドーナツグラフを切り替えできるようになります。
Enable donut hole editing:ドーナツグラフの内側の円の大きさの設定です。
Enable title inside donut editing:ドーナツグラフの内側に書くタイトルの設定です。
Enable Frequency Column Chooser:数値のコラムを選択することができるようになる設定です。これ、本当にあるんでしょうか、、、?
Enable label editing:データラベルの設定を変更できるようにする設定です
Enable switching 'Missing values' category:欠損値がある場合にその凡例を載せるかどうかを指定できる設定です。これも本当にあるのか疑問です、、、
Interactivity
Outputのグラフを表示したときに、凡例を選択すると非表示にする、などなどグラフに動的な要素を追加するオプションです。あまり使うことがないと思おうので、Nodepitの引用を載せておきます!
Enable selection:
If checked a separate column containing checkboxes is rendered in the view.
Subscribe to selection events:
If checked, the view reacts on notifications from other interactive views that the selection has been changed. See also "Publish selection events".
Publish selection events:
If checked, notifies other interactive views when user changes the selection in the current view. See also "Subscribe to selection events".
Display clear selection button:
Displays a button to clear current selection.
おわりに
円グラフ作るだけならめちゃめちゃ簡単なのに、Optionが多すぎて解説が長くなってしまいますね。正直見るより、使ってみた方が早いという一例かもしれません。できるだけTry&Errorの精神で取り組んでいきたいですね。
ではまた!
余談
最近、「ノーコード」という言葉が流行っているみたいですね。動画編集も、アプリ作るのでさえも今やコードがいらない世界です。ぜひ他のノーコードツールも勉強してみたいところです。KNIMEのその一部ですし、ぜひ皆さんに知っていただたらと思います。
参考リンク
- KNIME公式Node Pit(英語):
- KNIME Example Workflow(英語):