1
0

Domoで人口ピラミッドのグラフを作成する。

Last updated at Posted at 2024-07-10

はじめに

Domoを使い始めて、いろいろグラフを慣れていこうって考えているんですが、良いアイデアがないので、オープンデータを使って、いろいろなグラフを作ってみようと思う。

対象者

Domoのグラフを作成しているが苦労している方

作りたいグラフ

よくある人口ピラミッドを作りたい。

Domoでグラフタイプを探す。

そもそも人口ピラミッドを作成したいが、そんなタイプがあるか調べてみた。

やっぱりない!

そんなときはググります!
ありました!アタラさんのページにありました!

使用するグラフタイプは、
「横棒グラフ」>「オーバーレイ棒グラフ」で、作れそうでした。
スクリーンショット 2024-07-10 22.43.13.png

人口分布のデータを探す。

次はデータです。都合よく、人口分布のデータないかな。。。。

そんなときも、ググります!
ありました!

最近はやりのオープンデータがありました。

しかも作りたいゴールイメージまでありました。今回はこのデータでグラフを作りたいと思います。
(ちなみにこの画面キャプチャはTableauです。)
スクリーンショット 2024-07-10 22.45.38.png

年齢別推計人口【各歳別】を使う

更に探すと都合の良さそうなデータがあったのでダウンロードします。
https://www.city.osaka.lg.jp/contents/wdu290/opendata/#cat-51_data-00000642

ただちょうどよいデータではなかったので、Magic ETLでデータ加工をしていく必要がありました。
スクリーンショット 2024-07-10 22.48.46.png

データをアップロードする。

まずはダウンロードした年齢別推計人口【各歳別】のCSVデータをアップロードします。
詳細なやり方は省略しますが、Dataset名を「M_年齢別推計人口_PROD_Higashi」としました。
スクリーンショット 2024-07-10 22.54.03.png

たくさんある年齢の列をアンピボットする。

Magic ETLの詳細な作り方は書きませんが、順番に説明をしていきます。

まずは年齢のデータを扱いやすいようにアンピボットを行います。

アンピボットの設定

「ピボット」>「アンピボット」を使って、データを整形しましょう。
アンピボットは下記の通りです。
①新たにディメンションとなる【年齢】という列を作ります。
②年齢ごとに人数格納したいので、【人数】という列を追加します。
③【0歳[人]】などの列を、新しい【年齢】列に入れていきます。
④その際に、”0歳[人]”という値にします。

スクリーンショット 2024-07-10 22.57.53.png

できたら、プレビューを押して確認しましょう。
【年齢】列に、もともと【10歳[人]】という列だった情報が格納され、人数のところに【10歳[人]】に入っていた値が入りました。
スクリーンショット 2024-07-10 23.06.32.png

列を選択

アンピボットしただけでは、もともとあった列はなくなりません。
「ユーティリティー」>「列を選択」を使い、必要な列だけ残しましょう。
こんな感じです。
スクリーンショット 2024-07-10 23.10.04.png

ピボットを使って、男女の数値は別の列で持たせる。

アタラさんのHPを見ていると男女の数値は別の列で持たせないと行けないらしい。
ちなみに男女という情報は【男女計】列に「男性」「女性」「計」という情報でデータを持っていましたので、今度はピボットを行います。
スクリーンショット 2024-07-10 23.24.51.png

ピボットの設定

「ピボット」>「ピボット」を使って、データを整形しましょう。
アンピボットは下記の通りです。
①【男女計】という列の値から新しい列を作ります。
②行を特定するための列を指定します。
③【男女系】に入っている値が「男性」のときに、
④【男性】という列を新たに作り、
④【人数】という列の値を入れます。

スクリーンショット 2024-07-10 23.28.37.png

するとこんなデータになります。
スクリーンショット 2024-07-10 23.33.10.png

人口ピラミッドの作成。

出来上がったDatasetで、Analyzerを開きます。

使用するグラフタイプは、
「横棒グラフ」>「オーバーレイ棒グラフ」です。
スクリーンショット 2024-07-10 22.43.13.png

早速、Y軸(縦軸)に【年齢】、X軸に【男性】の合計、【女性】の合計をセットします。
スクリーンショット 2024-07-10 23.35.00.png

なにか違う。。。。。。

アタラさんのHPを見てみると、左右にデータを出し分けるためには、数値をマイナスにして、疑似的に左側に棒グラフを表示することらしい。

ビーストモードで、値をマイナスにする。

左側を男性の値にしていきたいので、男性の数値をマイナスする項目をビーストモードで作ります。
単純に、-1をかけただけです。名前は、「男性(-1)」としました。

スクリーンショット 2024-07-10 23.40.52.png

マイナスの値を、X軸に設定

X軸を、「男性(-1)」に置き換えたら、できた。。。。と思ったら、下にスクロールすると、何かおかしい。
そうです。年齢の文字が全角になっていて順番が違うのです。
スクリーンショット 2024-07-10 23.42.51.png

こんなときはETLで元データを直しても良いのですが、今回はビーストモードでソート項目を作成します。

ソートのための項目を作る。

強制的にソート順を決めるためのビーストモードで作ります。
名前は、「Sort年齢」とします。

スクリーンショット 2024-07-10 23.49.40.png

ソートを設定

「フィルターとソート」を表示し、ソートのところに先程作った「Sort年齢」を設定します。
デフォルトでは集計のところが「合計」になっているので、「集計なし」に設定変更する必要があります。

スクリーンショット 2024-07-10 23.51.05.png

完成した人口ピラミッドのグラフ

やっと完成しました。

スクリーンショット 2024-07-10 23.54.00.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0