技术贴 | R语言:手把手教你搞定ggplot柱形图(一)
点击蓝字↑↑↑“微生态”,轻松关注不迷路
本文由阿童木根据实践经验而整理,希望对大家有帮助。
原创微文,欢迎转发转载。
以模拟数据为案例,总结ggplot柱形图绘图参数。内容如下方目录所示,一共包含九个部分。此文先展示【1-5】五个部分的代码和结果图,【6-9】四个部分将在下一文展示。
目录
一 输入数据
二 画图:基础调整
1 初始图
2 X轴排序
3 count列排序
4 XY轴标签
三 主题调整
1 经典主题(无框、无网格、透明背景)
2 BW主题(黑框、网格、透明背景)
3 自定义(黑框、无网格、透明背景)
四 颜色调整
1 数值取色
2 渐变色
3 RColorBrewer取色
4 分组字符取色
5 自定义柱色
6 柱边取色
7 自定义柱边色
五 Legend调整
1 修改legend title和text
2 移动legend(下方)
六 柱形调整
1 柱边粗细
2 柱间宽度/间距
3 翻转90度
七 字体调整
1 X Y Legend 标题加粗、加大
2 X Y Legend 文本加粗、加大
八 XY轴调整
1 坐标轴范围
2 柱距X轴距离
3 坐标轴线粗细
4 外框粗细
5 坐标轴刻度粗细
九 添加更多元素
1 加数字(大小、位置、颜色、字体)
2 加点(型号、大小、颜色)
3 加直线(线型、颜色、粗细)
正文
一 输入数据(含分组)
count = rep(1:4, 3)
group = paste("color", rep(1:3, each=4), sep="_")
data = data.frame(count, group)
图1
二 画图:基础调整
1 初始图
library(ggplot2)
ggplot(data, mapping=aes(x=rownames(data), y=count)) +
geom_bar(stat="identity")
图2
2 X轴排序
ggplot(data, mapping=aes(x=rownames(data), y=count)) +
geom_bar(stat="identity") +
scale_x_discrete(limits=factor(rownames(data)))
图3
3 count列排序
tmp = data[order(data$count, decreasing=F),]
ggplot(tmp, mapping=aes(x=rownames(tmp), y=count)) +
geom_bar(stat="identity") +
scale_x_discrete(limits=factor(rownames(tmp)))
图4
4 XY轴标签
ggplot(data, mapping=aes(x=rownames(data), y=count)) +
geom_bar(stat="identity") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count")
图5
三、主题调整
1 经典主题(无框、无网格、透明背景)
ggplot(data, mapping=aes(x=rownames(data), y=count)) +
geom_bar(stat="identity") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count") +
theme_classic()
图6
2 BW主题(黑框、网格、透明背景)
ggplot(data, mapping=aes(x=rownames(data), y=count)) +
geom_bar(stat="identity") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count") +
theme_bw()
图7
3 自定义(黑框、无网格、透明背景)
ggplot(data, mapping=aes(x=rownames(data), y=count)) +
geom_bar(stat="identity") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count") +
theme(panel.grid=element_blank(), panel.background=element_rect(color="black",fill="transparent"))
图8
四、颜色调整
1 数值取色
ggplot(data, mapping=aes(x=rownames(data), y=count, fill=count)) +
geom_bar(stat="identity") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count") +
theme_bw()
图9
2 渐变色
colors <- colorRampPalette(c("red","black"))(12)
ggplot(data, mapping=aes(x=rownames(data), y=count)) +
geom_bar(stat="identity", fill=colors) +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count") +
theme_bw()
图10
3 RColorBrewer取色
library(RColorBrewer)
ggplot(data, mapping=aes(x=rownames(data), y=count)) +
geom_bar(stat="identity", fill=brewer.pal(12, "Set3")) +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count") +
theme_bw()
图11
4 分组字符取色
ggplot(data, mapping=aes(x=rownames(data), y=count, fill=group)) +
geom_bar(stat="identity") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count") +
theme_bw()
图12
5 自定义柱色
ggplot(data, mapping=aes(x=rownames(data), y=count, fill=group)) +
geom_bar(stat="identity") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count") +
theme_bw() +
scale_fill_manual(
values=c("color_1"="red", "color_2"="green","color_3"="blue"),
labels=c("red","green", "blue"))
图13
6 柱边取色
ggplot(data, mapping=aes(x=rownames(data), y=count, fill=group)) +
geom_bar(stat="identity", color="black") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count") +
theme_bw()
图14
7 自定义柱边色
ggplot(data, mapping=aes(x=rownames(data), y=count, color=group)) +
geom_bar(stat="identity", fill="grey") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count") +
theme_bw() +
scale_color_manual(
values=c("color_1"="red","color_2"="green", "color_3"="blue"),
labels=c("red","green", "blue"))
图15
五、Legend调整
1 修改legend title和text
ggplot(data, mapping=aes(x=rownames(data), y=count, fill=group)) +
geom_bar(stat="identity", color="black") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count",fill="Group") +
theme_bw() +
scale_fill_manual(
values=c("color_1"="red","color_2"="green", "color_3"="blue"),
labels=c("G1","G2", "G3"))
图16
2 移动legend(下方)
ggplot(data, mapping=aes(x=rownames(data), y=count, fill=group)) +
geom_bar(stat="identity", color="black") +
scale_x_discrete(limits=factor(rownames(data))) +
labs(x="Sample", y="Number of Count",fill="Group") +
theme_bw() +
theme(legend.position="bottom")
图17
你可能还喜欢
1
4
5
微生态科研学术群期待与您交流更多微生态科研问题
(联系微生态老师即可申请入群)
了解更多菌群知识,请关注“微生态”。