并不覺(jué)得ggplot2作圖多好看,尤其是箱線圖和柱狀圖需要大量的修飾彤蔽,
現(xiàn)在介紹ggplot2做分組箱線圖摧莽,添加箱子的bar和均值的幾個(gè)函數(shù)
stat_boxplot() 函數(shù)
stat_boxplot() 函數(shù)用來(lái)給箱子添加median ±1.5 IQR 的最大值和最小值的bar, 注意分組用的參數(shù)的設(shè)置position,根據(jù)圖像大小設(shè)置bar間距width參數(shù)
stat_boxplot(mapping=aes(x=橫坐標(biāo)列,y=縱坐標(biāo)列,fill=分組列), ##fill分組列
geom ="errorbar", ##添加箱子的bar為最大、小值
width=0.15,position=position_dodge(0.8))+ ##bar寬度和組間距
stat_summary()函數(shù)
stat_summary()函數(shù)用于給箱線圖添加均值顿痪,一般用的均值圖形為立四邊形镊辕,因?yàn)榉纸M比較,需要設(shè)置分組變量和組件據(jù)position參數(shù)
stat_summary(mapping=aes(group=分組列), ##設(shè)置分組列
fun="mean", ##箱線圖添加均值使用的公式mean
geom="point",shape=23,size=3,fill="white", ##均值圖形的設(shè)置
position=position_dodge(0.8))+ ##分組比較蚁袭,需設(shè)置兩組間距
theme()函數(shù)
- 設(shè)置的區(qū)域
panel:繪圖區(qū)相關(guān)設(shè)置
axis:坐標(biāo)軸相關(guān)的設(shè)置
legend:圖例相關(guān)的設(shè)置 - 設(shè)置的內(nèi)容
element_text():設(shè)置基于文本的組件征懈,如title,subtitle 和caption等。
element_line():設(shè)置基于線條揩悄,如軸線卖哎,主網(wǎng)格線和次網(wǎng)格線等。
element_rect():修改基于繪圖區(qū)域删性,如繪圖區(qū)域和面板區(qū)域的背景亏娜。
element_blank():清空任意主題對(duì)象,默認(rèn)返回默認(rèn)主題蹬挺。
ggplot2圖形外觀的其他常用函數(shù)
scale_fill_manual(): 設(shè)置比較的兩組圖形顏色
scale_y_continuous(): 設(shè)置y軸標(biāo)簽范圍照藻、標(biāo)簽名稱(chēng)
scale_x_discrete(): 設(shè)置x軸標(biāo)簽的順序、名稱(chēng)
labels(x="X軸",y="Y軸",fill="圖例"): 更改x汗侵、y幸缕、圖例的文本名稱(chēng)
匯總以上函數(shù)的代碼
ggplot(data,mapping=aes(x=橫坐標(biāo)列,y=縱坐標(biāo)列,fill=分組列))+ ##設(shè)置圖形的縱坐標(biāo)橫坐標(biāo)和分組
stat_boxplot(mapping=aes(x=橫坐標(biāo)列,y=縱坐標(biāo)列,fill=分組列),
geom ="errorbar", ##添加箱子的bar為最大、小值
width=0.15,position=position_dodge(0.8))+ ##bar寬度和組間距
geom_boxplot(aes(fill=分組列), ##分組比較的變量
position=position_dodge(0.8), ##因?yàn)榉纸M比較晰韵,需設(shè)組間距
width=0.6, ##箱子的寬度
outlier.color = "white")+ ##離群值的顏色
stat_summary(mapping=aes(group=分組列), ##分組計(jì)算的變量
fun="mean", ##箱線圖添加均值
geom="point",shape=23,size=3,fill="white", ##均值圖形的設(shè)置
position=position_dodge(0.8))+ ##因?yàn)榉纸M比較发乔,需設(shè)置兩組間距
scale_fill_manual(values=c("red","white","blue"))+ ##設(shè)置分組的顏色,對(duì)應(yīng)fill組數(shù)
scale_y_continuous(limits=c(0,4), ##修改y軸的范圍
breaks=c(1,2,3,4)), ##修改y軸刻度位置
labels=c("A","B","C","D","E")+ ##修改y軸標(biāo)簽的名稱(chēng)
scale_x_discrete(limits=c("D","C","B","A"), ##修改x軸標(biāo)簽的順序
labels=c("Z","H","M","R")+ ##修改x軸標(biāo)簽的名稱(chēng)
labs(x="X軸新名稱(chēng)",y="Y軸新名稱(chēng)",fill="新圖例名稱(chēng)")+ ##修改坐標(biāo)軸和圖例的文本
theme(panel.background=element_rect(fill='transparent'), ##去掉底層陰影
panel.grid=element_blank(), ##去掉網(wǎng)格線
panel.border=element_blank(), ##去掉圖的邊界線
panel.border=element_rect(fill='transparent', ##設(shè)置圖的邊界線
color='transparent')雪猪,
axis.line=element_line(colour="black",size=0.9), ##設(shè)置坐標(biāo)軸的線條
axis.title=element_text(face="bold",size = 13), ##設(shè)置坐標(biāo)軸文本字體
axis.title.x=element_blank(), ##刪除x軸文本
axis.text=element_text(face = "bold",size = 10), ##設(shè)置坐標(biāo)軸標(biāo)簽字體
axis.ticks=element_line(color='black'), ##設(shè)置坐標(biāo)軸刻度線
legend.position=c(0.15, 0.9), ##設(shè)置圖例的位置
legend.direction = "horizontal", ##設(shè)置圖列標(biāo)簽的排列方式
legend.title=element_text(face = "bold",size=12), ##設(shè)置圖例標(biāo)題字體
legend.title=element_blank(), ##去掉圖例標(biāo)題
legend.text=element_text(face = "bold",size=12), ##設(shè)置圖例文本的字體
legend.background=element_rect(linetype="solid", ##設(shè)置圖列的背景和線條顏色
colour ="black"))
產(chǎn)生的圖形樣式如下: