LoginSignup
11
7

More than 5 years have passed since last update.

【PowerBIメモ】ggplot2を使って、Rのグラフィックを埋め込んでみる

Last updated at Posted at 2017-04-11

以前の記事で、Rスクリプトを使ってPowerBIのデータセットを作成する手順に取り組んでみました。
今回は、Rを使ったグラフィックに挑戦してみようと思います。
使うパッケージはもちろんみんな大好き{ggplot2}でございます。

対象読者

・Rの基本的な操作が分かる人
・PowerBIの使い方の幅を広げたい人

データセットの準備

まずはデータセットを準備しますが、一番ポピュラーなirisデータセットを使おうと思います。
irisって何?って人はこちらのブログが参考になるかもです。

irisの正体

ざっくり言うと、「あやめ(iris)」という花の『がく(Sepal)』の長さと幅、『花びら(petal)』の長さと幅、
それぞれの種別(setosa,virginica,vergicolar)のデータセットです。
...まあ、今回はあまりデータの内容は重要ではありませんので、さらっと流してOKです。

とりあえずPowerBIに読み込みます。
PowerBIの「データを取得」→「Rスクリプト」を起動して、以下をコピペ。
irisはRのサンプルデータとして用意されているため、コードは1行(笑)

iris.r
df <- iris

グラフ作成

続いてグラフ作成です。

※グラフ作成前に、「クエリを編集」から、データセットにインデックス列を挿入しておくといいかもしれません。Rで読み込んだ際に重複行の削除が防げます。

「視覚化」の項目に以下のようなRのマークがあるのでクリック。

図1.png

Rスクリプトで作成したグラフを置く場所を決めます。

図2.png

下部スクリプトエディターが開くので、必要な変数をフィールドから選択。
(今回は、Petal.LengthとSepal.Length,Speciesを利用します。)

以下のとおり、ggplot2で作成するコードを記載します。
いつもどおり、詳細な説明はコード内コメントに預けます。

ggplot2
#ggplot2を読み込みます
library(ggplot2)

#グラフに単回帰分析の結果を書き込むため、lmで単回帰分析を出力しておきます。
result <- lm(Petal.Length~Sepal.Length,data=dataset)

#回帰式の情報を読み取ります
lma <- round(result$coefficients[[2]],2) #傾き
lmb <- round(result$coefficients[[1]],2) #切片
rsq <- round(summary(result)$adj.r.squared,2) #自由度調整済み決定係数
pv <- summary(result)$coefficients[,"Pr(>|t|)"][[2]] #P値
pvalue <- paste("P-value ",if(pv<0.01){
  "< 0.01"
} else if(pv <0.05){
  "< 0.05"
} else {
  paste("=",round(pv,3))
}
) #グラフ記載用に、P値に応じて出力を加工します


#いよいよggplot!
ggplot(dataset, aes(Sepal.Length, Petal.Length))+ #変数は、Sepal.Length(がく)とPetal.Length(花弁)ですよ
  geom_point(aes(colour=Species))+ #Species(種)ごとに色分けしますよ
  stat_smooth(method = "lm")+ #回帰直線描きます
  annotate("text", label = paste("y=",lma,
                                 "x",ifelse(lmb>0,"+",""),
                                 lmb),
           x = 7, y = 3)+ #回帰式書きます
  annotate("text",label = paste("Adjusted R-squared =",rsq),x=7,y=2)+ #決定係数書きます
  annotate("text",label = pvalue, x=7, y=1) #P値書きます

図3.png

単に散布図描いても面白くないので、統計解析に強いRを使って、回帰式等をグラフ内に差し込んでみました。
PowerBIの標準的な使い方だと回帰式等の結果は表示できないので、
単なる2変数の単回帰でも、ちょっと統計解析色を出せますね。
(実際は単回帰だけで事が解決することはほとんど無いですけど・・・)

・・・・・が、文字がちっちゃいですね(汗)。回帰分析の結果の値もなんか不恰好。
このへんはコードをいじるとどうにでもなります。
ggplot2の使い方は以下が詳しいです。

ggplot2 — きれいなグラフを簡単に合理的に

Rグラフィックもぬるぬる動くのがPowerBIのおススメ点

PowerBI上なら、Rグラフィックもフィルター操作等でぬるぬる動きます。

スライサーなどと一緒に使ってみてくださいね。
(上記データだと、結果の値があっちこっちいっちゃうので、やはり改善余地ありですが。)

メディア1.gif

おまけ

PowerBIだけだと実装しづらい散布図行列図なんかも、簡単に組み込めますね。
多変数だと煩雑すぎて解釈不能になるので、変数を絞ってお使いください。
各変数間の相関をざっと把握できるので、個人的に好きなグラフです。

psych.r
library(psych)
pairs.panels(dataset)

図4.png

おわりに

ggplot2の必要最小限の知識でRグラフィックを実装してみましたが、
実用していくためには細部への気配りも必要になりそうです。
こちらも引き続き修行しなければならないのを痛感しました。

Rグラフィックを簡単にPowerBI上に組み込めることの紹介でした。

※PowerBIサービスにアップロードしてRグラフィックを共有・閲覧するのは、
 有料のproライセンスが必要ですのでご注意ください。

11
7
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
11
7