安裝撬即、加載包
rm(list=ls())#clear Global Environment
setwd('D:\\桌面\\繪圖技巧')#設(shè)置工作路徑
#安裝包
# install.packages("ggplot2")
# install.packages("ggprism")
# install.packages("ggpubr")
#加載包
library(ggplot2)
library(ggprism)
library(ggpubr)
加載數(shù)據(jù)
#加載數(shù)據(jù)(以R自帶數(shù)據(jù)mtcars為例)
data(mtcars)
df <- mtcars[, c("mpg","cyl","wt")]
#將cyl轉(zhuǎn)換為因子型
df$cyl <- as.factor(df$cyl)
繪制小圖
#小圖繪制箱線圖
p1 <- ggplot(df,aes(x=cyl,y=wt))+#指定數(shù)據(jù)
stat_boxplot(geom = "errorbar", width=0.1,size=0.8)+#添加誤差線,注意位置成箫,放到最后則這條先不會(huì)被箱體覆蓋
geom_boxplot(aes(fill=cyl), #繪制箱線圖函數(shù)
outlier.colour="white",size=0.8)+#異常點(diǎn)去除
geom_jitter(width = 0.2)+#添加抖動(dòng)點(diǎn)
geom_signif(comparisons = list(c("4","6"),
c("6","8"),
c("4","8")),# 設(shè)置需要比較的組
map_signif_level = T, #是否使用星號(hào)顯示
test = t.test, ##計(jì)算方法
y_position = c(5,5.5,6),#圖中橫線位置設(shè)置
tip_length = c(c(0.01,0.01),
c(0.01,0.01),
c(0.01,0.01)),#橫線下方的豎線設(shè)置
size=0.8,color="black")+
theme_prism(palette = "candy_bright",
base_fontface = "plain", # 字體樣式棋傍,可選 bold, plain, italic
base_family = "serif", # 字體格式,可選 serif, sans, mono, Arial等
base_size = 16, # 圖形的字體大小
base_line_size = 0.8, # 坐標(biāo)軸的粗細(xì)
axis_text_angle = 45)+ # 可選值有 0幔妨,45术唬,90,270
scale_fill_prism(palette = "candy_bright")+
theme(panel.background =element_blank(), #背景
axis.line=element_line(),#坐標(biāo)軸的線設(shè)為顯示
plot.title = element_text(size=14))#圖例位置
p1
image.png
主圖繪制
p2 <- ggplot(df,aes(mpg,wt))+
geom_point(shape=21,color=df$cyl,fill=df$cyl)+
geom_smooth(method="lm",
color="#034C76",fill="grey",size=1)+#添加擬合線
theme_prism(palette = "flames",
base_fontface = "plain",
base_family = "serif",
base_size = 16,
base_line_size = 0.8,
axis_text_angle = 45)+
scale_fill_prism(palette = "candy_bright")+#填充色
labs(title = "散點(diǎn)圖", # 定義主標(biāo)題
subtitle = "XXXXXXX", # 定義子標(biāo)題
x = "XXXXX", # 定義x軸文本
y = "XXXXX")# 定義y軸文本
p2
image.png
組合圖繪制
#通過ggplot2包的函數(shù)annotation_custom()將箱線圖作為小圖插入到主圖中
p2 + annotation_custom(grob=ggplotGrob(p1),ymin = 3.2, ymax = 5.8, xmin=22, xmax=35)
image.png