Power BIで、棒グラフを作ってみる-2
ggplot2で棒グラフを作成した時と、同じデータセットを使って、
Power BIで、どのような棒グラフが作れるかを試します。
mukkujohn.hatenablog.com
正負で色を塗り分ける
過去記事と同じデータを使います。
> head(csub) Source Year Anomaly1y Anomaly5y Anomaly10y Unc10y 101 Berkeley 1900 NA NA -0.171 0.108 102 Berkeley 1901 NA NA -0.162 0.109 103 Berkeley 1902 NA NA -0.177 0.108 104 Berkeley 1903 NA NA -0.199 0.104 105 Berkeley 1904 NA NA -0.223 0.105 106 Berkeley 1905 NA NA -0.241 0.107 > str(csub) 'data.frame': 105 obs. of 6 variables: $ Source : chr "Berkeley" "Berkeley" "Berkeley" "Berkeley" ... $ Year : num 1900 1901 1902 1903 1904 ... $ Anomaly1y : num NA NA NA NA NA NA NA NA NA NA ... $ Anomaly5y : num NA NA NA NA NA NA NA NA NA NA ... $ Anomaly10y: num -0.171 -0.162 -0.177 -0.199 -0.223 -0.241 -0.294 -0.312 -0.328 -0.281 ... $ Unc10y : num 0.108 0.109 0.108 0.104 0.105 0.107 0.106 0.105 0.103 0.101 ...
x軸にYearを、y軸にAnomaly10yをマッピングします。
書式を探しても、正負で塗りつぶし色を分けることができなそうです。
そのため、過去記事と同様に、正負を表す列を追加します。
#pos列がAnomaly10yの正負を表しています > head(csub2) Source Year Anomaly1y Anomaly5y Anomaly10y Unc10y pos 101 Berkeley 1900 NA NA -0.171 0.108 TRUE 102 Berkeley 1901 NA NA -0.162 0.109 TRUE 103 Berkeley 1902 NA NA -0.177 0.108 TRUE 104 Berkeley 1903 NA NA -0.199 0.104 TRUE 105 Berkeley 1904 NA NA -0.223 0.105 TRUE 106 Berkeley 1905 NA NA -0.241 0.107 TRUE > str(csub2) 'data.frame': 105 obs. of 7 variables: $ Source : chr "Berkeley" "Berkeley" "Berkeley" "Berkeley" ... $ Year : num 1900 1901 1902 1903 1904 ... $ Anomaly1y : num NA NA NA NA NA NA NA NA NA NA ... $ Anomaly5y : num NA NA NA NA NA NA NA NA NA NA ... $ Anomaly10y: num -0.171 -0.162 -0.177 -0.199 -0.223 -0.241 -0.294 -0.312 -0.328 -0.281 ... $ Unc10y : num 0.108 0.109 0.108 0.104 0.105 0.107 0.106 0.105 0.103 0.101 ... $ pos : logi TRUE TRUE TRUE TRUE TRUE TRUE ...
先ほどと同様にグラフを作成しますが、凡例にpos列を設定します。
あとは、凡例で塗りつぶし色を分けるだけです。
その他の変更可能は、前回の記事と同様です。
ggplot2で棒グラフを作成した記事では、この2つを実施しましたが、
- 棒の幅と間隔を調整する
- グループ化された棒グラフの幅と間隔を調整する
Power BI ではできません。
そもそも、わざわざ棒の幅を調整するケースが思いつかないです。
積み上げ棒グラフ
ggplot2では、コマンドで指定していました。
geom_bar(stat="identity")
Power BIでは、凡例を指定するだけです。
データは、過去記事と同様に、cabbage_expを使います。
> head(cabbage_exp) Cultivar Date Weight sd n se 1 c39 d16 3.18 0.9566144 10 0.30250803 2 c39 d20 2.80 0.2788867 10 0.08819171 3 c39 d21 2.74 0.9834181 10 0.31098410 4 c52 d16 2.26 0.4452215 10 0.14079141 5 c52 d20 3.11 0.7908505 10 0.25008887 6 c52 d21 1.47 0.2110819 10 0.06674995 > str(cabbage_exp) 'data.frame': 6 obs. of 6 variables: $ Cultivar: Factor w/ 2 levels "c39","c52": 1 1 1 2 2 2 $ Date : Factor w/ 3 levels "d16","d20","d21": 1 2 3 1 2 3 $ Weight : num 3.18 2.8 2.74 2.26 3.11 1.47 $ sd : num 0.957 0.279 0.983 0.445 0.791 ... $ n : int 10 10 10 10 10 10 $ se : num 0.3025 0.0882 0.311 0.1408 0.2501 ...
x軸にDate、y軸にWeight、凡例にCultivarを指定します。
上のグラフは、書式の変更で、下記を行っています。
- 凡例を右側に配置
- データラベルを追加
この積み上げ棒グラフですが、Power BIは、グラフを作成した後でも、
x軸やy軸の並び替えはできますが、凡例の並び替えはできないですね。
ggplot2は、マッピングする時の順序指定で、積み上げの順序を制御できましたが、
Power BIは指定ができないので、凡例の並び替えは、お手上げです。
100%積み上げ棒グラフを作成する
ggplot2は、plyrパッケージを使って、パーセント列を計算して…でしたが、
Power BIでは、グラフの種類を選択し直すだけです。
1つ前の画像と比較して頂きたいのですが、視覚化ペインで
100%積み上げ棒を選択するだけで良いです。
過去記事(ggplot2で、棒グラフを作る-3)では、下記の2つをさらに扱っています。
- データラベルの追加
- (Cleveland)ドットプロット
データラベルですが、Power BIでは、3点しか設定できません。
- フォント色
- 小数点以下の桁数
- フォントサイズ
細かい位置の指定や、単位を付与するなどできません。
(Cleveland)ドットプロットですが、Power BIでは、できません。
棒グラフでは、棒の表示有無が指定できません。
散布図で作ろうにも、離散値をx軸に取れません。
(散布図については、Power BIで散布図を作成する記事で、細かく扱います。)
次回は、Power BIで折れ線グラフを作成してみます。