ggplot2(Rでグラフ作成)に触れてみる
Rで主にカラーグラフを作成するときには、ggplot2がよいらしいと。。。
白黒画像はggplot2を使わずに、plot()関数などを勉強して頑張れば、よいのかもしれない。
ggplot2に慣れてきたら、白黒画像もggplot2で描いてみたい気も、、、
ggplot2を用いた、心理学の日本語の雑誌用のFigure用のtemplateっぽいものは、以下のサイトにあるらしい。
論文用の棒グラフと折れ線グラフをggplot2で描く
Written on January 29, 2017
https://mrunadon.github.io/ThesisPlot/
(環境)
Windows 8.1 Pro
R Studio 1.1.383
(0)ggplot2について調べてみる
以下のサイトのリンクを読んで、写経してみる。
https://kazutan.github.io/kazutanR/ggplot2_links.html
(1)「ggplot2によるグラフ化」を写経してみる。
https://www.slideshare.net/nocchi_airport/ggplot2-kazutan-rver2
サンプルデータ : diamonds
(ggplot2パッケージ内に入っている。約5万行x10列)
ggplot2
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.3.3
diamonds2 <- diamonds[sample(nrow(diamonds),500),]
head(diamonds2)
plot(diamonds2$carat, diamonds2$price)
plot(diamonds2$carat, diamonds2$price,
pch=21, bg=c("yellow", "red", "green", "blue", "pink")[diamonds2$cut])
ggplot(diamonds2, aes(y=price, x=carat))+
geom_point()
ggplot(diamonds2, aes(y=price, x=carat, color=cut))+
geom_point()
ggplot(diamonds2, aes(y=price, x=carat, color=clarity))+
geom_point()
ggplot(diamonds2,
aes(y=price, x=carat,
color=color,
size=clarity,
shape=cut))+
geom_point()
## Warning: Using size for a discrete variable is not advised.
描画の仕組み
レイヤーを重ねて図を調整
基本レイヤー(データ指定)
ggplot(iris, aes(y=Petal.Length, x=Sepal.Length, color=Species))+
プロットの仕方の指定
geom_point()+
背景の指定
theme_bw()+
軸目盛の指定
ylim(0,10)+
軸の書式の指定
theme(axis.text.x=element_text(size=15), axis.text.y=element_text(size=15))
library(ggplot2)
ggplot(iris, aes(y=Petal.Length, x=Sepal.Length, color=Species))+
geom_point()+
theme_bw()+
ylim(0,10)+
theme(axis.text.x=element_text(size=15),
axis.text.y=element_text(size=15))
## 方法その2(FACETを用いる)
if(0){
ggplot(diamonds2, aes(y=price, x=carat, color=color))+
geom_point()+
facet_wrap(cut~clarity)
}
視覚的に要約
質(5段階)別に価格の平均みたい
ggplot(diamonds, aes(y=price, x=cut))+
stat_summary(fun.y=mean, geom="bar")
散布図
ggplot(diamonds, aes(y=price, x=clarity, grounp=cut, color=cut))+
stat_summary(fun.y=mean, geom="point")
## 折れ線グラフ
ggplot(diamonds, aes(y=price, x=clarity, group=cut, color=cut))+
stat_summary(fun.y=mean, geom="line")
## レイヤーの重ね描き
ggplot(diamonds, aes(y=price, x=clarity, grounp=cut, color=cut))+
stat_summary(fun.y=mean, geom="point")+
stat_summary(fun.y=mean, geom="line")
## geom_path: Each group consists of only one observation. Do you need to
## adjust the group aesthetic?
スライドをコピペしたつもりなのだが、うまくいかず。
ググってみたが、わからず、
一度、平均と標準偏差を計算してから、ggplot2で計算した方が早いか、、、
https://stats.biopapyrus.jp/r/ggplot/geom-line.html
(参考)
ggplot2を使って、軸を制御する-3
Rグラフィックスクックブック
http://mukkujohn.hatenablog.com/entry/2016/10/11/220722
(引用ここから)
——————-
目盛りを変更するためには、scale_y_continuous()のbreaks引数を指定
#目盛りを、50,56,60,66,72に設定します。 ベースのグラフ + scale_y_continuous(breaks=c(50,56,60,66,72))
この50,56,60,66,72の目盛りのテキスト(ラベル)を変更するためには、
scale_y_continuous()のlabels引数を指定
ベースのグラフ + scale_y_continuous(breaks=c(50,56,60,66,72), labels=c("Tiny","Really\nshort","Short","Medium","Tallish"))
——————-
ディスカッション
コメント一覧
まだ、コメントがありません