忙碌于實驗的一周。寫代碼的時候是只要寫代碼就要動腦子挡闰,最簡單的讀文件乒融,也是要小小動一下腦子。而做實驗的時候是計劃實驗的時候動腦子摄悯,實驗中機械操作赞季,然后實驗失敗的時候是費腦子。永遠不知道是我有問題奢驯,樣本有問題申钩,還是實驗過程有問題,總是在重復摸索瘪阁,好難撒遣。正文——————————今天我們來講蜜蜂圖,這圖也看著確實很吵鬧管跺,仿佛耳邊嗡嗡作響义黎。
什么是蜜蜂圖
不知道蜜蜂圖的名字從何而來,我猜測可能是因為畫這個圖的包叫做beeswarm豁跑?
我們先來看看蜜蜂圖長什么樣廉涕。
看上去和我們之前的點圖很像,我們可以直觀來比較一下beeswarm和ggplot中使用jitter及point(默認參數(shù))繪制同一組關于乳腺癌數(shù)據(jù)的圖:
從中可以發(fā)現(xiàn)艇拍,beeswarm很好的體現(xiàn)了數(shù)據(jù)的分布狐蜕,更加清楚、直觀卸夕。而后兩者层释,難以快速獲取信息,point圖中點過于密集快集,jitter中分布過于散亂贡羔。這也是很多科學論文選擇beeswarm圖的原因,在小樣本下也許jitter或者point的方法也能夠傳達我們想要傳遞的信息碍讨。但是在樣本量較大的時候治力,這兩個繪圖方法就不太適合了。而beeswarm圖在大樣本的情況下也比較使用勃黍。不僅可以體現(xiàn)每一個樣本具體情況宵统,而且能夠查看整體的情況。
怎么做蜜蜂圖
本次作圖使用兩個不同的包,之所以如此是因為比較常見的制作蜜蜂圖的包就叫做“beeswarm”马澈,但是它和ggplot的作圖習慣略有差別瓢省。鑒于之前都是利用ggplot作圖,所以也講解另一個基于ggplot的名叫“ggbeeswarm”的包痊班。
Note:沒有安裝相關R包的勤婚,先安裝R包
1)需要什么格式的數(shù)據(jù)
本次使用的是beeswarm包中的breast數(shù)據(jù)。
共有286個樣本涤伐,具體所表示的信息如下:
ER:Estrogen receptor status (factor with levels neg, pos)
ESR1:Expression of the ESR1 gene (numeric)
ERBB2:Expression of the ERBB2 gene (numeric)
time_survival:Time in months (numeric)
event_survival:Coded event: 0 = censored, 1 = metastasis (numeric)
2)如何作圖
首先使用beeswarm包
library(beeswarm)
data(breast)
beeswarm(time_survival ~ ER, data = breast,
pch = 16, pwcol = 1 + as.numeric(event_survival),
xlab = "", ylab = "Follow-up time (months)",
labels = c("ER neg", "ER pos"))
legend("topright", legend = c("Yes", "No"),
title = "Censored", pch = 16, col = 1:2)
可以看到不像ggplot給具體的x=馒胆,y=,該包使用公式:
舉例: p~ grp
那么就相當于x為grp凝果,y為p
另外祝迂,其修改圖諸多細節(jié)的方式也不一致。
pch是選擇點的樣式器净,不同的數(shù)字代表實心圓型雳、空心圓、三角形山害、倒三角形等等纠俭。
pwcol是用來設置顏色,可以看到這里+1原因是event_survival中含有0值浪慌,如果不加1冤荆,則顯示為無色,即查看不到這些樣本
labels用來修改x軸標簽
然后使用legend功能添加圖例
然后我們來看一看另一個R包ggbeeswarm眷射。
ggplot(breast,aes(x=ER,y=time_survival))+
geom_beeswarm(aes(color=factor(event_survival)),cex=1.5)+#cex用于設置點的密集程度
theme_bw()+
theme(
legend.position = c("top"),
panel.grid = element_blank()
)+
scale_color_manual(values=c("Black","Red"),name="Censored",labels=c("Yes","No"))+
scale_x_discrete(labels=c("ER neg","ER pos"))+
xlab("")+
ylab("Follow-up time (months)")
往期 R數(shù)據(jù)可視化 分享
R數(shù)據(jù)可視化9: 棒棒糖圖 Lollipop Chart
R數(shù)據(jù)可視化8: 金字塔圖和偏差圖
R數(shù)據(jù)可視化7: 氣泡圖 Bubble Plot
R數(shù)據(jù)可視化6: 面積圖 Area Chart
R數(shù)據(jù)可視化5: 熱圖 Heatmap
R數(shù)據(jù)可視化4: PCA和PCoA圖
R數(shù)據(jù)可視化3: 直方/條形圖
R數(shù)據(jù)可視化2: 箱形圖 Boxplot
R數(shù)據(jù)可視化1: 火山圖