R言語のggplot2で棒グラフを描くには?

 Rのggplot2で棒グラフを描きます。

要約

 Rでこんなグラフが描けます。

パッケージの準備

 ggplot2はRにもともと入っている機能ではありません。インストールして、呼び出しする必要があります。

install.packages("ggplot2") #インストール(初回のみ)
library(ggplot2) #読み出し(RStudio起動のたびに)

棒グラフ

(1)練習用データ

 2000年の一人当たり名目GDPの棒グラフを作ってみましょう。一人当たりGDPは、人々が直面する豊かさのひとつの指標です。

country <- c("Japan","USA","Singapore","Korea","China")  #国
gdp  <- c(39172,36312,23852,12263,951) #一人当たりGDP
data0 <- data.frame(country, gdp) #データフレーム作成

(2)基本形

 縦方向に棒が伸びる棒グラフです。↓

ggplot(data0, aes(x=gdp,y=country)) + #横軸にcountry、縦軸にgdp
  geom_bar(stat="identity") #横軸、縦軸のデータを指定したい場合はidentityにする

 

 横方向に棒が伸びる棒グラフです。↓

ggplot(data0, aes(x=gdp,y=country)) + #横軸にgdp、縦軸にcountry
  geom_bar(stat="identity") #横軸、縦軸のデータを指定したい場合はidentityにする

(3)順番の調整

 順番を調整しましょう。↓

#reorder(A,B)はAを、Bが大きい順に上から並べます。ちなみにreorder(A,-B)はAを、Bが小さい順に上から並べます。
ggplot(data0, aes(x=gdp,y=reorder(country, gdp))) +
  geom_bar(stat="identity")

(4)数値

 データの数値を表示させます。↓

ggplot(data0, aes(x=gdp,y=country),label = gdp) + #labelで表示したい数値を指定
  geom_bar(stat="identity")+ 
  geom_text(aes(label = gdp),hjust=0,vjust=0) #geom_textで表示したい数値を指定。hjustは水平方向の位置調整。vjustは垂直方向の位置調整。

綺麗な棒グラフ

(1)データの作成

 日本語が入ったデータを作ります。

#国名を日本語にします
country <- c("日本","米国","シンガポール","韓国","中国")
gdp  <- c(39172,36312,23852,12263,951)
data0 <- data.frame(country, gdp)

(2)綺麗な棒グラフ

 綺麗な棒グラフを描きます。

##解説あり
 
#data0のデータを使う。縦はgdp、横は国、ラベルをgdpに指定
ggplot(data0, aes(x=gdp,y=reorder(country, gdp)),label = gdp) +
 
#0から40000まで、10000ずつに、灰色の縦線を入れる
  geom_vline(xintercept = seq(0,40000,10000), col = "grey")+
 
#縦軸は0から45000にする。45000にしたのはgdpラベルが画像の外に出ないようにするため。メモリは0から40000まで、10000ずつ
  scale_x_continuous(limits = c(0, 45000),breaks = seq(0,40000,10000))+
 
#stat="identity"を指定。塗りつぶし色をskyblue2にした
  geom_bar(stat="identity",fill = "skyblue2")+
 
#0に黒の縦線をいう
  geom_vline(xintercept = 0, col = "black")+
 
#ラベルを表示。水平方向に-0.15。色はgrey30
  geom_text(aes(label = gdp), hjust=-0.15,colour = "grey30")+
 
#軸ラベル、タイトルラベル
  xlab("一人当たりGDP(名目、USドル、2000年)") + 
  ylab("国名") + 
  ggtitle ("一人当たり豊かさの比較(2000年)") +
 
#日本語バグを防ぐ
  theme_minimal(base_family = "HiraKakuPro-W3")
##解説なし
 
ggplot(data0, aes(x=gdp,y=reorder(country, gdp)),label = gdp) +
  geom_vline(xintercept = seq(0,40000,10000), col = "grey")+
  scale_x_continuous(limits = c(0, 45000),breaks = seq(0,40000,10000))+
  geom_bar(stat="identity",fill = "skyblue2")+
  geom_vline(xintercept = 0, col = "black")+
  geom_text(aes(label = gdp), hjust=-0.15,colour = "grey30")+
  xlab("一人当たりGDP(名目、USドル、2000年)") + 
  ylab("国名") + 
  ggtitle ("一人当たり豊かさの比較(2000年)") +
  theme_minimal(base_family = "HiraKakuPro-W3")

補足:色について

#おすすめの色
black #黒
white #白
grey #灰色
skyblue2 #青
palegreen3 #緑
pink1 #ピンク
 
#透明度
alpha=? #←0から1

コメント欄 お気軽にコメントをお寄せください!

タイトルとURLをコピーしました