R语言:ggplot2做柱状图,随机生成颜色。

#加载包

> library(ggplot2)

> library(tidyverse)

> library(openxlsx)

> library(reshape2)

> library(RColorBrewer)

> library(randomcoloR)

> library(viridis)

> set.seed(1233) #设立种子数。

> palette <- distinctColorPalette(30) #生成随机30个颜色。

> write.table(palette, file = "30genus color.txt", sep = ",") #记录随机生成的颜色

> setwd("设立目录")

> mydata <- read.xlsx("读取.xlsx")

> data_draw<-melt(mydata,id.vars='species')#转换数据

复制代码
> head(mydata)
                   species      T1     T2     T3     T4      T5     T6     T7     T8     T9
1 Streptococcus salivarius   44092 121843 311183 486756 1156014 223453 163548  31383  47748
2      Rothia mucilaginosa  389451 347085 151944 159476  249279  92135 405152  99208 347259
3   Haemophilus influenzae 1051110 597710      0      0       0      0      0      0   2878
4      Streptococcus mitis  382851 246140 103352 211729   86955  18720 142086 416849   3792
5      Gemella haemolysans  109751  63687  15401 159620   15844   1537 194576 691594  64046
6 Streptococcus pneumoniae  180474 106915  78916  85142   49947  10830 313821 300134      0
> head(data_draw)
                   species variable   value
1 Streptococcus salivarius       T1   44092
2      Rothia mucilaginosa       T1  389451
3   Haemophilus influenzae       T1 1051110
4      Streptococcus mitis       T1  382851
5      Gemella haemolysans       T1  109751
6 Streptococcus pneumoniae       T1  180474

> data_drawspecies \<- factor(data_drawspecies, levels = c("Streptococcus salivarius", "Rothia mucilaginosa", "Haemophilus influenzae", "Streptococcus mitis",

"Gemella haemolysans", "Streptococcus pneumoniae", "Streptococcus parasanguinis", "Neisseria mucosa",

"Streptococcus oralis", "Haemophilus parainfluenzae", "Neisseria subflava", "Neisseria sicca", "Fusobacterium nucleatum",

"Prevotella melaninogenica", "Neisseria flavescens", "Veillonella parvula", "Veillonella dispar",

"Gemella sanguinis", "Streptococcus gordonii", "Leptotrichia wadei", "Streptococcus cristatus",

"Streptococcus anginosus", "Gemella morbillorum", "Neisseria meningitidis", "Veillonella atypica",

"Streptococcus sanguinis", "Corynebacterium argentoratense", "Streptococcus australis",

"Lactobacillus crispatus", "others"))#对种类图形元素排序,保证图形是从大向小排。

> ggplot(data_draw, aes(x = variable, y = value)) +

geom_bar(aes(fill = species), stat = "identity", color = NA, size = 0.4,

position = "fill", alpha = 0.90, width = 0.9) +

scale_fill_manual(values = palette) +

labs(y = "Relative abundance", x = "Sample") +

theme(

text = element_text(family = 'serif'),

axis.title = element_text(size = 14, face = "plain", color = "black"),

axis.text = element_text(size = 14, face = "plain", color = "black"),

legend.title = element_text(size = 14, face = "bold", color = "black"),

panel.background = element_blank(),

axis.line = element_line(colour = "black", size = 0.4),

legend.position = "right", # 在这里设置图例位置

) +

scale_y_continuous(expand = c(0, 0)) +

theme(

plot.margin = unit(c(2, 1, 1, 1), "lines"),

axis.ticks.length = unit(0.1, "cm"),

axis.text.x = element_text(margin = unit(c(0.5, 0.5, 0.5, 0.5), "cm")),

axis.text.y = element_text(margin = unit(c(0.5, 0.5, 0.5, 0.5), "cm"))

)

这种方法是直接将数据处理好,再导入R语言的。

相关推荐
赵钰老师2 天前
R语言数据统计分析与ggplot2高级绘图
开发语言·数据分析·r语言
开开心心_Every2 天前
电脑文件搜索软件支持内容和拼音搜索
linux·服务器·人工智能·r语言·pdf·音视频·symfony
AAIshangyanxiu3 天前
R语言数据统计分析与ggplot2高级绘图实践应用
开发语言·r语言·ggplot2
青春不败 177-3266-05203 天前
R语言数据统计分析与ggplot2高级绘图
r语言·生态学·科研绘图·统计学·ggplot2·环境科学
临床数据科学和人工智能兴趣组3 天前
R Markdown 如何写
人工智能·机器学习·数据分析·r语言·r语言-4.2.1
酷在前行4 天前
【R生态】PERMANOVA 进阶实战:距离选择、PERMDISP、两两比较与受限置换(保姆级教程)
开发语言·r语言
临床数据科学和人工智能兴趣组5 天前
要使用 R Markdown,首先需要安装 R 和 RStudio,接着安装 rmarkdown 包
开发语言·数据挖掘·数据分析·r语言·r语言-4.2.1
酷在前行5 天前
【R绘图】Nature Communications 半眼图复刻:分布、区间与多面板排版(保姆级教程)
android·开发语言·r语言
酷在前行5 天前
【R论文复刻】Nature Communications 冲积图进阶:状态转移、流带排序与多面板排版(保姆级教程)
开发语言·r语言
酷在前行6 天前
【R模型】R语言随机森林分类进阶:交叉验证、调参与独立测试(保姆级教程)
随机森林·分类·r语言