読者です 読者をやめる 読者になる 読者になる

Mukku John Blog

取り組んでいること を つらつら と

Power BIで、散布図を作ってみる

PowerBI 散布図

ggplot2で折れ線グラフを作成した時と、同じデータセットを使って、
Power BIで、どのような散布図が作れるかを試します。(散布図ムズィ)
mukkujohn.hatenablog.com

散布図

こちらのデータセットを使います。

> head(heightweight[, c("ageYear","heightIn","sex","weightLb")])
  ageYear heightIn sex weightLb
1   11.92     56.3   f     85.0
2   12.92     62.3   f    105.0
3   12.75     63.3   f    108.0
4   13.42     59.0   f     92.0
5   15.92     62.5   f    112.5
6   14.25     62.5   f    112.0

> str(heightweight[, c("ageYear","heightIn","sex","weightLb")])
'data.frame':	236 obs. of  4 variables:
 $ ageYear : num  11.9 12.9 12.8 13.4 15.9 ...
 $ heightIn: num  56.3 62.3 63.3 59 62.5 62.5 59 56.5 62 53.8 ...
 $ sex     : Factor w/ 2 levels "f","m": 1 1 1 1 1 1 1 1 1 1 ...
 $ weightLb: num  85 105 108 92 112 ...

x軸にageYearを、y軸にheightInをマッピングします。
f:id:MukkuJohn:20160912221029p:plain
!?
なんか点が1つなんですが、、、
なんかageYearとheightInが足されているようなんですが、、、

素直にチュートリアル見ました。チュートリアル: Power BI の散布図とバブル チャート | Microsoft Power BI
プロットする点のデータが一意である必要があるとのことなので、
インデックス列を追加し、詳細に設定してみました。
f:id:MukkuJohn:20160912221351p:plain
無事、作れました。

変更できる書式は、こんなところです。
f:id:MukkuJohn:20160912222713p:plain

特筆する部分は、これらでしょうか。

  • データの色
  • カテゴリラベル
  • フィルポイント

まず、データの色ですが、詳細に指定したデータ毎に色が付けれます。
f:id:MukkuJohn:20160912223004p:plain

このグラフですと、インデックス値ごとに、色が付けれるのですが、
どのポイントが、どのインデックス値か分からないので、設定しません。
この機能はいったい、、、


カテゴリラベルと、フィルポイントは下の図のとおりです。
f:id:MukkuJohn:20160912223210p:plain


凡例にsexを設定してみます。
f:id:MukkuJohn:20160912223426p:plain


さきほどのデータの色ですが、凡例ごとに指定できるようになりました。
f:id:MukkuJohn:20160912223455p:plain


分析部分ですが、他のグラフと比較して、追加できる線が多いです。
f:id:MukkuJohn:20160912223659p:plain


まず、傾向線ですが、全てのデータポイントを統合した傾向線
凡例ごとの傾向線をプロットすることができます。
f:id:MukkuJohn:20160912223933p:plain
f:id:MukkuJohn:20160912224010p:plain
線形回帰かな

その他の線は、x軸かy軸のどちらの軸に対する線かを選びます。
f:id:MukkuJohn:20160912224630p:plain
画像は、下3つの線を追加しています。

  • ageYearの最小値(黒線)
  • heightInの平均値(黄色線)
  • ageYearの中央値(緑線)

バブルチャート

点にサイズを持たせてみます。サイズに、別の項目を設定するだけです。
f:id:MukkuJohn:20160912230114p:plain
ageYear < 12 & heightIn < 56 とフィルターしています。
フィルターすると、分析線も再計算されていますね。

Power BIでは、点の大きさがデータの大きさに比例しているっぽいです。

オーバープロット

大量のデータを、プロットしてみます。

こちらのデータを使います。53940個のデータがあります。

> head(diamonds[ , c("carat", "price")])
  carat price
1  0.23   326
2  0.21   326
3  0.23   327
4  0.29   334
5  0.31   335
6  0.24   336

> str(diamonds[ , c("carat", "price")])
'data.frame':	53940 obs. of  2 variables:
 $ carat: num  0.23 0.21 0.23 0.29 0.31 0.24 0.24 0.26 0.22 0.23 ...
 $ price: int  326 326 327 334 335 336 336 337 337 338 ...


なんか左上に!マークが表示されています。
f:id:MukkuJohn:20160912230427p:plain

クリックすると、悲しいメッセージが、、、。
f:id:MukkuJohn:20160912230518p:plain

何個プロットされているのだろうと、書式 -> データの色を確認してみました。
f:id:MukkuJohn:20160912231359p:plain
なんか、文句言いながらも、全てのデータをプロットしている雰囲気が出てます。
(ためしにデータの色を変更しようとしたら、ブラウザが固まったので諦めました。)

Rのように、ビン詰めなどできないので、データポイントが多い場合は、
フィルターするしかないでしょうね。


次回からは、Rに戻り、データの分布が確認できるグラフを作成していきます。