R語(yǔ)言繪制小提琴圖violin plot實(shí)現(xiàn)示例
即便小仙同學(xué)決定學(xué)習(xí)R語(yǔ)言來(lái)提升自己作圖的“逼格”的時(shí)候,心中還有有些疑慮的(嘿嘿,我這么懶,可不愿意做無(wú)用功了?)。仔細(xì)想了想,貌似又找到了兩個(gè)學(xué)習(xí)R的理由。
一是R可以幫助我們避免重復(fù)勞動(dòng),實(shí)現(xiàn)“一勞永逸”的終極夢(mèng)想。盡管非常不想承認(rèn)這一事實(shí),在科研的過(guò)程中,小仙同學(xué)制造出了大量“無(wú)效”的數(shù)據(jù)(sign…),但也不得不“絞盡腦汁”、“竭盡全力”地進(jìn)行花式分析,試圖找出合理的解釋。這時(shí)候用Excel或者Origin作圖的劣勢(shì)就顯現(xiàn)出來(lái)了,每換一種分析方法或者是數(shù)據(jù),我們都需要經(jīng)過(guò)“插入圖表”、“調(diào)整顏色”、“調(diào)整間距”等等繁雜的工序畫(huà)出一張可以拿去“面圣”的圖。小仙同學(xué)一想到這些就感覺(jué)“累覺(jué)不愛(ài)”了。
二是R可以自動(dòng)生成比較貌美的圖。不知道大家有沒(méi)有這樣的感受,自己辛辛苦苦畫(huà)了半天、調(diào)整的半天的圖會(huì)得到真實(shí)卻很殘忍的評(píng)價(jià)“很丑”(這是小仙同學(xué)心中永遠(yuǎn)的痛)。即使本小仙自以為眼光獨(dú)特、品味高雅,費(fèi)勁嘗試“高級(jí)”的色系,但搭配出來(lái)總是那么不盡人意(實(shí)測(cè)網(wǎng)紅晚晚帶火的“莫蘭迪色”不適用于科研繪圖)。顏色的搭配、飽和度和透明度的調(diào)整沒(méi)有想象中那么容易。折騰了半天,天生就愛(ài)不服氣的本小仙,最后決定還是把專(zhuān)業(yè)的事交給專(zhuān)業(yè)的人做啦(偷偷告訴你,據(jù)說(shuō)有科學(xué)家專(zhuān)門(mén)研究paper插圖的配色,所以自己畫(huà)的圖沒(méi)有那么貌美的時(shí)候也不要“妄自菲薄”啦)。
好了,叨叨這么多,終于要開(kāi)始進(jìn)入正題啦。一開(kāi)始用R繪圖的時(shí)候,小仙同學(xué)其實(shí)是非常痛苦的,因?yàn)闆](méi)有編程基礎(chǔ),又懟了好幾年瓶瓶罐罐,看到一行行代碼,腦子里飄過(guò)的全是“&%¥#@¥$”。尤其是當(dāng)你有實(shí)驗(yàn)要做、報(bào)告要寫(xiě)、作業(yè)要交的時(shí)候,平心靜氣地坐下來(lái)踏踏實(shí)實(shí)學(xué)習(xí)真的太難了(有人說(shuō)小仙同學(xué)那么忙是因?yàn)樾实停孟裾嬗行┑览?,我這真是“唉”,有苦說(shuō)不出)。
后來(lái)本小仙的學(xué)習(xí)策略就非常簡(jiǎn)單,用到啥就去搜啥,我對(duì)數(shù)據(jù)結(jié)構(gòu)、語(yǔ)法結(jié)構(gòu)一點(diǎn)都不感興趣,能讓我用最短的時(shí)間內(nèi)畫(huà)出我想要的圖,就是最好的方法。即使這樣,小仙同學(xué)還是費(fèi)了一些功夫。因?yàn)榫W(wǎng)上的一些教程,很多都是從別處復(fù)制粘貼過(guò)來(lái)的,本身就不完整。另外一個(gè)原因,某些大神覺(jué)得自己的教程已經(jīng)足夠通俗易懂了,有些大家都知道的基礎(chǔ)知識(shí)根本不需要講(小仙同學(xué)不服,有基礎(chǔ)的同學(xué)不用看教程也可以自己摸索出來(lái),真正需要教程的就是我們這些小白)。
小仙同學(xué)愿意嘗試一下,把最最全面、稍作修改就能拿去的方法code分享一下,也不枉費(fèi)花了那么多的時(shí)間。
那就先從violin plot開(kāi)始吧。
(假設(shè)你已經(jīng)安裝了R和RStudio)
Step1. 繪圖數(shù)據(jù)的準(zhǔn)備
首先要把你想要繪圖的數(shù)據(jù)調(diào)整成R語(yǔ)言可以識(shí)別的格式。
一般我們的數(shù)據(jù)都是保存在excel文檔里,這里建議大家在excel中保存成csv格式,讀寫(xiě)的速度會(huì)比xlsx快很多。(小仙同學(xué)的親身經(jīng)驗(yàn),我的有些數(shù)據(jù)有兩萬(wàn)行,xlsx在我的耐心范圍內(nèi)讀不進(jìn)去,RStudio崩潰)。
數(shù)據(jù)的格式如下圖:一列表示一種變量,第一行是列名
Step2. 繪圖數(shù)據(jù)的讀取
data<-read.csv(“your file path”, header = T)
#注釋?zhuān)篽eader=T表示數(shù)據(jù)中的第一行是列名,如果沒(méi)有列名就用header=F
Step3.繪圖所需package的安裝、調(diào)用
install.package(“ggplot2”) #注釋?zhuān)篻gplot2是目前公認(rèn)繪圖很強(qiáng)的一個(gè)安裝包
library(ggplot2) #注釋?zhuān)簆ackage在使用之前需要調(diào)用
Step4.繪圖
data$dose <- as.factor(data$dose)
#注釋?zhuān)捍颂巇ose可用你的變量名稱替換,$表示取數(shù)據(jù)集里的某一個(gè)元素
p<-ggplot(data, aes(x = dose, y = len))
#注釋?zhuān)?rdquo;x=”,”y=”表示x軸和y軸表示的變量數(shù)值,p表示圖像對(duì)象
p+geom_violin() #注釋?zhuān)寒?huà)出violin plot的函數(shù)
Step5.美化
p+geom_violin(aes(fill = dose)) #注釋:按組別填充不同的顏色
*如果你想手動(dòng)改變顏色,可以使用這一句
p+geom_violin(aes(fill = “dose”))+scale_fill_manual(values=c("#56B4E9"))
#注釋?zhuān)?rdquo;#56B4E9”可以用其他顏色的代碼來(lái)替換
好啦,今天的分享就到這里了,希望可以幫助到大家以后請(qǐng)多多支持腳本之家!
相關(guān)文章
解決R語(yǔ)言報(bào)錯(cuò):Error?in?y?+?1:non-numeric?argument?to?binary
R語(yǔ)言編程中的常見(jiàn)錯(cuò)誤有一些錯(cuò)誤是R的初學(xué)者和經(jīng)驗(yàn)豐富的R程序員都可能常犯的,下面這篇文章主要給大家介紹了關(guān)于解決R語(yǔ)言報(bào)錯(cuò):Error?in?y?+?1:non-numeric?argument?to?binary?operator的相關(guān)資料,需要的朋友可以參考下2022-11-11R語(yǔ)言科學(xué)計(jì)算RcppArmadillo簡(jiǎn)明手冊(cè)
這篇文章主要為大家介紹了R語(yǔ)言科學(xué)計(jì)算RcppArmadillo的簡(jiǎn)明手冊(cè),內(nèi)容非常詳細(xì)全面,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11R語(yǔ)言服務(wù)器安裝R包實(shí)現(xiàn)過(guò)程
這篇文章主要為大家介紹了R語(yǔ)言在服務(wù)器安裝R包的實(shí)現(xiàn)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11R語(yǔ)言關(guān)于泊松回歸知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是一篇關(guān)于R語(yǔ)言關(guān)于泊松回歸知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-05-05R的ggplot2畫(huà)圖,去除灰色陰影和網(wǎng)格的方式
這篇文章主要介紹了R的ggplot2畫(huà)圖,去除灰色陰影和網(wǎng)格的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04R語(yǔ)言-實(shí)現(xiàn)按日期分組求皮爾森相關(guān)系數(shù)矩陣
這篇文章主要介紹了R語(yǔ)言-實(shí)現(xiàn)按日期分組求皮爾森相關(guān)系數(shù)矩陣,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04