R使用ggplot实现基础数据可视化
0. 在开始之前,我们需要设置工作目录并导入数据集 liver.df 作为案例示范,如果需要liver.df可以评论。
# set your own working directory!
setwd("liver_files_location")
liver.cells.df <- read.table("liver.cells.txt", header = FALSE)
liver.section.df <- read.table("liver.section.txt", header = FALSE)
liver.exper.df <- read.table("liver.exper.txt", header = FALSE)
liver.gt.df <- read.table("liver.gt.txt", header = TRUE)
liver.df <- data.frame(liver.cells.df, liver.section.df, liver.exper.df, liver.gt.df)
colnames(liver.df) <- c("cells", "section", "exper", colnames(liver.gt.df))
1. 安装ggplot包。
install.packages("ggplot2")
library(ggplot2)
ggplot2 是由 Hadley Wickham 创建的 R 包。它提供了一个强大的图形工具,用于创建美观且复杂的图表。近年来,它在 R 社区中的受欢迎程度急剧上升。该包允许您以直接的方式创建图表,展示单变量和多变量的数值和分类数据。分组可以通过颜色、符号、大小和透明度来表示。
2. 散点图绘制:
ggplot(liver.df, aes(x = cells, y = PRL)) + geom_point(col = "red") +
labs(title = "Cells vs PRL", x = "Number of Cells", y = "PRL Response")
选定x轴为cells,y轴为PRL,使用红颜色绘制散点,labs标签用于标题和x、y轴名称的显示。
3. 密度图绘制:
ggplot(liver.df, aes(x = PRL, colour = exper, fill = exper)) +
geom_density(alpha = 0.5) + xlim(-20,40) +
labs(title = "Density of PRL", x = "PRL Response", y = "Density")
使用liver.df数据框,aes选定x轴且告诉r语言我们要分别对exper的变量填色,透明度用alpha=0。5调整,x的可视范围调为-20到40,再对标题等进行名称显示。
4. 多张散点图绘制:
ggplot(liver.df, aes(x = PRL, y = ARL, color = exper)) +
geom_point() + facet_wrap(section ~ exper) + theme_minimal()
命令 facet_wrap(section ~ exper) 按照章节和实验分割散点图,theme_minimal() 将绘图风格改为极简主题(例如,它移除了灰色背景)。
5. 回归线绘制:
ggplot(liver.df, aes(x = cells, y = ARL, colour = exper)) + geom_point() +
labs(title = "Regression of ARL on cells",
x = "Number of Injected Cells", y = "ARL Response") +
geom_smooth(method = 'lm', formula = y ~ x)
我们为每个实验在细胞上绘制ARL的回归图,使用geom_smooth(method = 'lm'),color根据exper选择不同颜色。
6. 箱形图:
ggplot(liver.df, aes(y = PRL, x = exper, fill = exper)) +
geom_boxplot() +
labs(y = "PRL Response", x = "Experiment")
使用 geom_boxplot()生成各实验的 PRL 方框图。
ggplot2数据可视化官方文档
-
the ggplot reference site: Function reference • ggplot2
-
this ggplot2 Tutorial (short version and part 1-3): How to make any plot in ggplot2? | ggplot2 Tutorial