WeeklyAlteryxTips#89 円グラフの並びに関する考察

Alteryx

今回もAlteryxのインタラクティブチャートのネタです。

インタラクティブチャートの円グラフについて

インタラクティブチャートには円グラフを描く機能があります。まず、描いてみましょう。今回のデータもシンプルなデータです。

以下のように設定します。

  • 型・・・円
  • 値・・・amount
  • ラベル・・・category_major_cd

これで以下のような円グラフが描かれます。

若干違和感を感じる人はいるでしょうか?並びが思ったような感じではないかと思います。通常大きい順に時計回りに配置されるイメージかと思いますが、一体これはなんの順番なのでしょうか?

インタラクティブチャートの円グラフの表示順序

円グラフのレイヤー設定には、「円のセグメント」という設定項目があり、ここにOrderが設定できるようになっています。

デフォルトではソートになっていますが、そもそもどういう基準のソートなのでしょうか?

ソートなしにすると、データの順番通りに表示することができます。

えっ、本当に???データは以下の通りでした。04から順番に09まで並んでいます。

グラフをよく見てみると、右上が一番最初の「04」、「05」はなぜか左上に来ていて、さらにその先に「06」があります。ということはつまり、以下のように配置されています。

これに気づいたときは力が抜けました・・・。素直に時計回りにしてほしい・・・。

ということで、つまりソートをオンにすると、右上が一番大きいもの、次に左回りに大きい順に並びます。

わかりにくいので、我々が期待する順番、つまり大きい順に時計回りにするにはどうすれば良いでしょうか?

大きい順位時計回りに配置する

ソート機能を使うと強制的に右上から反時計回りに配置されてしまうので、ソート機能は切りましょう。

その上で、データの並び順を調整します。手順としては以下のようになります。

  1. 小さい順に並び替える
  2. 1のデータから最後の1行のみのデータを作る
  3. 1のデータから最後の1行をスキップする
  4. 2,3をユニオンする(2,3の順にする)

これにより、以下のようなデータが得られます。

一番最初の行は一番大きいものにしておき、次に小さい順にデータを並べていく、ということです。ちなみに、最後の行のみスキップする、という機能がサンプリングツールにないので、CReW Macroの「Skip Last N」を使うと簡単です。

ワークフローとしては以下のようになります。

これにより、以下のような円グラフが得られます。

まとめ

  • インタラクティブチャートツールの円グラフのデータの表示順の謎を解き明かしました
  • 円グラフで大きい順に時計回りで表示するワークフローを解説しました

サンプルワークフローダウンロード

次回

未定です。

コメント

タイトルとURLをコピーしました