デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - 円グラフを作るには? - Pie/Donut Chart

f:id:makkynm:20210120154302p:plain

 

はじめに

 こんにちは、自動化大好きまっきーです。今回はKNIMEで円グラフ・ドーナツグラフを作る方法について解説したいと思います。KNIMEはAnalytics Platformなので、解析に必要なツールが揃っています。またデータ量の大きいデータを扱うことにも優れています。

データの見える化(Visualization)は、データから気づきを得るための第一歩です。もしこのデータがデータ量の小さい簡単なグラフ化が必要なだけであれば、Excelでいいと思いますが、データ量が大きくなってくるとグラフ化は大変ですよね。そこでKNIMEでグラフ化まで行ってしまってデータの前処理、グラフ化まで一緒に行ってしまおうというのが意図です。データの解析を行う人にとってはいい機能なのではないでしょうか。

また、KNIME Server等のサービスを用いれば、Web Applicationとしてデータを直接扱わない人でもWeb上でデータのフィルタリング、グラフ化、抽出が可能になります。

個人的には、”多くの人に見せるため”のグラフ化はPowerBI等のBIツールを使用すべきかなと思っていますが、、

前置き長くなりました、早速見ていきましょう!

 

 今回のテーマ ~Pie/Donut Chart~

f:id:makkynm:20210120191607p:plain

今回のテーマ ~Pie/Donut Chart~

Workflowは下記からダウンロードできます。

hub.knime.com

 

前回棒グラフについて解説しました。このときKNIMEのグラフ化の基礎についてかなり触れているので、まだ見ていない方はぜひこちらを目を通していただけると、スムーズに使えるようになると思います。

degitalization.hatenablog.jp

 

覚えてほしいこと

「全体に対する割合を強調したい場合」は円グラフ

 

事前準備

前回、棒グラフ編で使ったデータと同じデータを例として使用します。

 

事前にこんなOutputのテーブルを準備しました。今までのTrainingが習得できていれば、今までのWorkflowをコピペしてから改変するだけで作れると思います。

今までのTrainingなんて知らん!って人は、Table Createrで直接下のようなTableを作っていただいてOKです。

f:id:makkynm:20210120184544p:plain

グラフ化する元テーブル

f:id:makkynm:20201212171544p:plain

グラフ化する元のテーブル(JoinerのOutput)

 

やりたいこと

元テーブルの残業時間のデータと部署のデータを使って、残業時間の部署ごとの割合を円グラフ・ドーナツグラフで見せてみます。

これにより、会社全体の残業時間のうちどの部署が残業時間が多いのかが相対的に分かります。

もちろんこれはかなり乱暴な例です。本来残業時間は合計値(絶対量)で表されるべきだと思うので、割合で表示するのはいかがかなとは思おうのですが、これは例なので、ご容赦ください。。

f:id:makkynm:20210120192459p:plain

やりたいこと - Pie/Donut Chart

 

 

Pie/Donut Chartの使い方

そもそも大前提として、円グラフを使うべきポイントですが、円グラフを選ぶべき時は、「全体に対する割合を強調したい場合」です。シェアが何%ですというようなことを示すべき場合とかですかね。GroupByされるイメージになるので、凡例になる種類が少ないほど見やすくなります。

円グラフもドーナツグラフも穴が空いているかどうかくらいしか違いがないので、一緒に解説しちゃいます。

Workflow

円グラフを作りたいテーブルと直接くっつけるだけです。

f:id:makkynm:20210120191607p:plain

Workflow ~Pie/Donut Chart~

Confirm - Pie Chart / Donut Chart

こんな感じで、円グラフもドーナツグラフも違いはないですね。勝手に割合を計算してくれます。

グラフの出し方はこちらを参照してください。

f:id:makkynm:20210120192459p:plain

やりたいこと - Pie/Donut Chart

Configure - 円グラフ

まずは円グラフの場合です。

f:id:makkynm:20210122085751p:plain

Configure - Pie Chart
Step1 -Category Column 凡例を選ぶ

まずは分類したいコラムを選択します。このコラムが凡例になります。棒グラフでは横軸でしたね。

今回は部署ごとの残業時間の割合を出したいので、「部署」のコラムを選択しています。

 

Step2 - Aggregation Method 値のコラムを選ぶ

次に値のコラムを選択します。3種類選択できます。棒グラフの時と内容は同じですが再掲します。

  1. Occurence Count  -  Category Columnで選択した列の値の出現回数のカウント
  2. Sum - Frequency Columnで選択した数値コラムの値の合計
  3. 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”では、グラフのプロパティのような設定が可能です。

f:id:makkynm:20210122092146p:plain

Configure - Pie Chart

 

 

続いて、グラフのプロパティの部分です。

Title: グラフのタイトル

Subtitle:グラフのサブタイトル

Use row colors:行にあらかじめ割り振られた色を使用する(まだ解説したことがありませんが、Color ManagerというNodeがあります。)

Display Legend:凡例を表示します。

f:id:makkynm:20210122091533p:plain

Display Legend

Show labels:データラベルを表示します。

f:id:makkynm:20210122091827p:plain

Show labels
Step4 - label type データラベルの表示方法

Label Type

続いてデータラベルの表示方法の設定です。百聞は一見にしかずだと思うので、下の図を見てもらえれば3つの選択肢の違いがわかると思います。

  • Key:凡例をデータラベルとして表示
  • Value:値をデータラベルとして表示
  • Percentage:割合をデータラベルとして表示

f:id:makkynm:20210122092317p:plain

label type

Label Threshold
この設定では、閾値を設定できます。それ以下の割合だった場合はそのデータラベルを表示しないというものです。

細かい数字の場合、データラベルを全て表示してしまうとグラフがかなり汚くなってしまいますよね。円グラフはその他として括ると思います。

例えば、0.25に設定すると、25%ということなので、25%以下のデータラベルは表示されなくなります。これは、割合を基準として決定されるので、Value Typeがその他の設定だったとしても、同じように表示されなくなります。 

f:id:makkynm:20210123002552p:plain

label Threshold

 

Configure - ドーナツグラフ

ドーナツグラフの作り方は基本円グラフと変わりません。Step3 のGeneral Plot Option の中にある一部の設定を変更します。

Plot donut chart :チェックを入れると、円グラフがドーナツグラフに変わります。

Donut Hole Ratio:真ん中の円の大きさを比率で決めます。

Title inside donut:円の中心に記入する文字を入力します。
 

f:id:makkynm:20210123105908p:plain

Configure - Donut Chart

 

 ちょっと一言

その他のOption

グラフ系のConfigureは選択肢が多いように見えますが、基本設定しなくていいものです。一応他のOptionも見ていきましょう。

General Plot Options
  • Display fullscreen button:全画面表示のオプションのボタンが表示されるようになります。KNIME serverでWebに発行された時に使えます。
  • Image:画像出力するときに使う設定です。ピクセルサイズの設定ですかね
  • Show warnings in view:警告文を検知した時に画面に表示するオプションです。

 

Control Options

棒グラフと同じで、グラフ表示しているときにプロパティを変えることができるようにするオプションです。

f:id:makkynm:20210123110926p:plain

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.

引用:Pie/Donut Chart — NodePit

 

おわりに

円グラフ作るだけならめちゃめちゃ簡単なのに、Optionが多すぎて解説が長くなってしまいますね。正直見るより、使ってみた方が早いという一例かもしれません。できるだけTry&Errorの精神で取り組んでいきたいですね。

ではまた!

 

 

 

 

余談 

最近、「ノーコード」という言葉が流行っているみたいですね。動画編集も、アプリ作るのでさえも今やコードがいらない世界です。ぜひ他のノーコードツールも勉強してみたいところです。KNIMEのその一部ですし、ぜひ皆さんに知っていただたらと思います。

 

参考リンク