媽媽說,學音樂的小孩不會變壞,在提琴樂器中,小提琴的音域和音量都是提琴家族裡最厲害的,也很方便攜帶,學拉小提琴也可以讓我們培育多一些古典音樂氣息,這種氣息通常還帶一點藝術,在R語言工程師這裡我們也能培養的,來試試Violin plot
。
小提琴圖(Violin plot)和箱形圖(box plot)很類似,箱形圖的方形可以顯示出Q1、Q3兩個4分位數,小提琴圖則可以強化資料分佈密度(Density)來展示圖形
ggpot2小提琴圖函式
geom_violin(mapping = NULL, data = NULL, stat = "ydensity", position = "dodge", trim = TRUE,
scale = "area", ...)
http://docs.ggplot2.org/0.9.3.1/geom_violin.html
我們在資料夾MyR新增一支Day19.R
在Day19.R中輸入程式碼
#載入gcookbook(取得男女生身高體重數據)
library(gcookbook)
# Base plot
p <- ggplot(heightweight, aes(x = sex, y = heightIn))
p + geom_violin()
執行結果
我們這邊刻意將ggplot(heightweight, aes(x = sex, y = heightIn))
指派給p變數,
p就像一張畫紙,我們再將想要呈現的圖一層一層疊上去。
ggpolt在繪製圖型時是以一種圖層式的概念在畫的,圖層間可以用+
來堆疊上去。
下面我們試試看把violin
和geom_boxplot
疊起來。
在Day19.R中輸入程式碼
p + geom_violin() + geom_boxplot(width=.1, fill="black", outlier.colour=NA) +
stat_summary(fun.y=median, geom="point", fill="white", shape=21, size=2.5)
執行結果
可以和箱形圖比較,感覺不像小提琴,比較東港漁港邊的烤魷魚。
在Day19.R中輸入程式碼
p + geom_violin() + geom_boxplot(width = .1, fill = "black", outlier.colour = NA) +
geom_dotplot(binaxis = "y", binwidth = .5, stackdir = "center")
執行結果
# More smoothing
p + geom_violin(adjust = 2)
執行結果
小提琴之城Cremona沒機會去,只好用Cremona附近的verona(維洛那),茱麗葉的故居。
攝於2011.10 verona.italy
學寫程式的工程師也不會變壞。
http://docs.ggplot2.org/0.9.3.1/geom_violin.html
R Graphics Cookbook