Power BIで、散布図を作ってみる
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をマッピングします。
!?
なんか点が1つなんですが、、、
なんかageYearとheightInが足されているようなんですが、、、
素直にチュートリアル見ました。チュートリアル: Power BI の散布図とバブル チャート | Microsoft Power BI
プロットする点のデータが一意である必要があるとのことなので、
インデックス列を追加し、詳細に設定してみました。
無事、作れました。
変更できる書式は、こんなところです。
特筆する部分は、これらでしょうか。
- データの色
- カテゴリラベル
- フィルポイント
まず、データの色ですが、詳細に指定したデータ毎に色が付けれます。
このグラフですと、インデックス値ごとに、色が付けれるのですが、
どのポイントが、どのインデックス値か分からないので、設定しません。
この機能はいったい、、、
カテゴリラベルと、フィルポイントは下の図のとおりです。
凡例にsexを設定してみます。
さきほどのデータの色ですが、凡例ごとに指定できるようになりました。
分析部分ですが、他のグラフと比較して、追加できる線が多いです。
まず、傾向線ですが、全てのデータポイントを統合した傾向線か
凡例ごとの傾向線をプロットすることができます。
線形回帰かな
その他の線は、x軸かy軸のどちらの軸に対する線かを選びます。
画像は、下3つの線を追加しています。
- ageYearの最小値(黒線)
- heightInの平均値(黄色線)
- ageYearの中央値(緑線)
バブルチャート
点にサイズを持たせてみます。サイズに、別の項目を設定するだけです。
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 ...
なんか左上に!マークが表示されています。
クリックすると、悲しいメッセージが、、、。
何個プロットされているのだろうと、書式 -> データの色を確認してみました。
なんか、文句言いながらも、全てのデータをプロットしている雰囲気が出てます。
(ためしにデータの色を変更しようとしたら、ブラウザが固まったので諦めました。)
Rのように、ビン詰めなどできないので、データポイントが多い場合は、
フィルターするしかないでしょうね。
次回からは、Rに戻り、データの分布が確認できるグラフを作成していきます。