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语言的。

相关推荐
zhangfeng113320 分钟前
R 语法高亮为什么没有,是需要安装专用的编辑软件,R语言自带的R-gui 功能还是比较简单
开发语言·r语言
WangYan202221 分钟前
经济学+机器学习+R语言:十大原理、熵权法、随机森林、神经网络、因果推断全解析
r语言·生态经济学·经济学
高-老师10 小时前
基于R语言的物种气候生态位动态量化与分布特征模拟
开发语言·r语言·物种气候
Tiger Z10 小时前
R 语言科研绘图 --- 其他绘图-汇总2
r语言·论文·科研·绘图·研究生
WangYan202213 小时前
【物种分布模型】R语言物种气候生态位动态量化与分布特征模拟——气候生态位动态检验、质心转移可视化、适生区预测等
r语言·物种分布模型·物种气候生态位
q567315231 天前
告别低效:构建健壮R爬虫的工程思维
开发语言·爬虫·r语言
没有梦想的咸鱼185-1037-16631 天前
【高分论文密码】大尺度空间模拟预测与数字制图
信息可视化·数据分析·r语言
kebeiovo2 天前
项目必备流程图,类图,E-R图实例速通
开发语言·r语言·流程图
zhangfeng11333 天前
BiocManager下载失败 R语言 解决办法
开发语言·r语言
Tiger Z5 天前
《R for Data Science (2e)》免费中文翻译 (第7章) --- Data import(1)
r语言·数据科学·中文翻译