????今天給大家介紹一個(gè)ggplot2包的擴(kuò)展包——ggprism包,結(jié)合該包可繪制GraphPad prism風(fēng)格樣式圖形,具體效果我們看圖說話!
安裝、加載包
rm(list=ls())
# 安裝包
install.packages("ggplot2")
install.packages("ggprism")
install.packages("tidyverse")
install.packages("ggpubr")
#加載包
library(ggplot2)
library(ggprism)
library(tidyverse)
library(ggpubr)
準(zhǔn)備繪圖數(shù)據(jù)
#自己隨機(jī)編寫的數(shù)據(jù)
df <- data.frame(
A_1 = c(2,5,6,5,4,8,6,3,8,9),
A_2 = c(5,8,6,3,4,7,9,3,6,4),
B_1 = c(15,10,5,18,12,13,16,14,10,9),
B_2 = c(25,20,23,15,14,24,20,22,25,26),
C_1 = c(1,3,6,5,2,3,6,2,4,1),
C_2 = c(7,8,9,6,7,8,9,6,7,10)
)
#使用tidyverse包對(duì)數(shù)據(jù)進(jìn)行處理
df <- df %>%
gather(key = 'samples',value = 'values') #gather()函數(shù)可以把多列數(shù)據(jù)合并成一列數(shù)據(jù)
#添加分組信息
df$group = rep(c("A","B","C"), each = 20)
head(df)#預(yù)覽數(shù)據(jù)

image.png
繪圖
1)ggplot2包繪制的簡單圖形
p1 <-ggplot(df,aes(samples,values,color=samples,fill=samples))+
geom_bar(stat="summary",fun=mean,position="dodge")+
stat_summary(fun.data = 'mean_sd', geom = "errorbar", width = 0.3,color="black")
p1

image.png
2)通過ggprism包調(diào)整主題風(fēng)格
#通過names()函數(shù)查看該包包含的主題
names(ggprism_data$themes)

image.png
#通過preview_theme()函數(shù)可預(yù)覽每一個(gè)主題的樣式
preview_theme("diazo")

image.png
preview_theme("candy_soft")

image.png
preview_theme("blueprint")

image.png
preview_theme("summer")

image.png
#我們可以通過theme_prism()函數(shù)對(duì)ggplot2的主題進(jìn)行設(shè)置
p1+theme_prism(palette="summer")

image.png
#我們也可以通過ggprism自帶調(diào)色板對(duì)ggplot2繪制圖形顏色進(jìn)行改變
p1+ scale_fill_prism(palette = "summer")

image.png
#對(duì)主題及顏色同時(shí)設(shè)置
p1+theme_prism(palette="summer")+
scale_fill_prism(palette = "summer")

image.png
#通過??theme_prism查看其中的參數(shù),然后我們進(jìn)行具體設(shè)置
??theme_prism
theme_prism(
palette = "black_and_white",
base_size = 14,
base_family = "sans",
base_fontface = "bold",
base_line_size = base_size/14,
base_rect_size = base_size/14,
axis_text_angle = 0,
border = FALSE)
#應(yīng)用
p1 + theme_prism(palette="summer",
base_fontface = "plain", # 字體樣式
base_family = "serif", # 字體格式
base_size = 16, # 圖形字體大小
base_line_size = 0.8, # 坐標(biāo)軸粗細(xì)
axis_text_angle = 45)+ #角度
scale_fill_prism(palette = "summer")

image.png