技术贴 | R语言:手把手教你搞定ggplot柱形图

Posted 微生态

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术贴 | R语言:手把手教你搞定ggplot柱形图相关的知识,希望对你有一定的参考价值。


点击蓝字↑↑↑“微生态”,轻松关注不迷路

技术贴 | 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:43)

group = paste("color", rep(1:3, each=4), sep="_")

data = data.frame(count, group)


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图1


 二 画图:基础调整

 

1 初始图

 

library(ggplot2)

ggplot(data, mapping=aes(x=rownames(data), y=count)) +

geom_bar(stat="identity")


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图2

 

2 X轴排序


ggplot(data, mapping=aes(x=rownames(data), y=count)) +

geom_bar(stat="identity") +

scale_x_discrete(limits=factor(rownames(data)))


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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)))

 

技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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")


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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()


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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()

 

技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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"))


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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()


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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()


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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()


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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()


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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"))


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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()

 

技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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"))


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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"))


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图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")


技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

图17





技术贴 | R语言:手把手教你搞定ggplot柱形图(一)你可能还喜欢技术贴 | R语言:手把手教你搞定ggplot柱形图(一)





微生态科研学术群期待与您交流更多微生态科研问题

(联系微生态老师即可申请入群)

了解更多菌群知识,请关注“微生态”。


以上是关于技术贴 | R语言:手把手教你搞定ggplot柱形图的主要内容,如果未能解决你的问题,请参考以下文章

师兄绝招 | 手把手教你R语言轻松搞定临床三线表

技术贴 | R语言:常见的ggplot取色方法

R语言ggplot2做簇状柱形图并添加误差线的一个完整示例

手把手教你搞定Java数据结构与算法

最简单的R语言绘图,教你10分钟搞定入门绘图

手把手教你学习R语言