r - 堆叠条形图 ggplot2,具有比例和多个样本
问题描述
是否可以使用 ggplot2 制作复杂的堆叠条形图(如下图)?barplot()
问题是我使用该功能时没有出现图例。平均值是每种颜色代表一个不同的组,在这种情况下,是 15。这是我的数据:
E1 E2 T1 T2 T3
Euryarchaeota 0.03426232 0.028532902 0.003404255 0.00000000 0.000152045
Nanoarchaeota 0.01006978 0.009088457 0.005531915 0.00000000 0.001197354
Thaumarchaeota 0.16938955 0.175026969 0.004680851 0.01093149 0.008191425
Acetothermia 0.01347512 0.008252427 0.000000000 0.00000000 0.000000000
Acidobacteria 0.13500188 0.131850054 0.038723404 0.05357968 0.070187776
Actinobacteria 0.02481929 0.019120820 0.044255319 0.13210162 0.110612741
Bacteroidetes 0.01685957 0.014374326 0.097446809 0.05850654 0.077314885
Chloroflexi 0.02509088 0.026105717 0.017446809 0.02294072 0.018207389
Gemmatimonadetes 0.03668575 0.033710895 0.007234043 0.01785989 0.012733769
Latescibacteria 0.01103079 0.015992449 0.005531915 0.00369515 0.002014596
Nitrospirae 0.06131701 0.059978425 0.023829787 0.00000000 0.009331762
Planctomycetes 0.03465926 0.033117584 0.034042553 0.01062356 0.031473316
Proteobacteria 0.21633310 0.205339806 0.554042553 0.44218630 0.488178501
Rokubacteria 0.15265533 0.181364617 0.022553191 0.00739030 0.025961685
Other 0.05835039 0.058144552 0.141276596 0.24018476 0.144442755
T4 T5
Euryarchaeota 7.766588e-05 0.0002546635
Nanoarchaeota 2.744194e-03 0.0032469600
Thaumarchaeota 2.639346e-02 0.0196250080
Acetothermia 0.000000e+00 0.0000000000
Acidobacteria 8.153623e-02 0.0360348889
Actinobacteria 6.223497e-01 0.0495320558
Bacteroidetes 1.812204e-03 0.0550709875
Chloroflexi 1.588267e-02 0.0142770739
Gemmatimonadetes 1.993424e-03 0.0174922009
Latescibacteria 3.546742e-03 0.0081492328
Nitrospirae 1.285370e-02 0.0056980964
Planctomycetes 4.020504e-02 0.0254504361
Proteobacteria 1.382712e-01 0.3284522824
Rokubacteria 8.582080e-03 0.0548481569
Other 4.375178e-02 0.3818679570
非常感谢!
解决方案
您必须将数据重塑为 long,然后创建绘图。这里是建议的解决方案。是的,有可能:
library(tidyverse)
#Data
df <- structure(list(Var = c("Euryarchaeota", "Nanoarchaeota", "Thaumarchaeota",
"Acetothermia", "Acidobacteria", "Actinobacteria", "Bacteroidetes",
"Chloroflexi", "Gemmatimonadetes", "Latescibacteria", "Nitrospirae",
"Planctomycetes", "Proteobacteria", "Rokubacteria", "Other"),
E1 = c(0.03426232, 0.01006978, 0.16938955, 0.01347512, 0.13500188,
0.02481929, 0.01685957, 0.02509088, 0.03668575, 0.01103079,
0.06131701, 0.03465926, 0.2163331, 0.15265533, 0.05835039
), E2 = c(0.028532902, 0.009088457, 0.175026969, 0.008252427,
0.131850054, 0.01912082, 0.014374326, 0.026105717, 0.033710895,
0.015992449, 0.059978425, 0.033117584, 0.205339806, 0.181364617,
0.058144552), T1 = c(0.003404255, 0.005531915, 0.004680851,
0, 0.038723404, 0.044255319, 0.097446809, 0.017446809, 0.007234043,
0.005531915, 0.023829787, 0.034042553, 0.554042553, 0.022553191,
0.141276596), T2 = c(0, 0, 0.01093149, 0, 0.05357968, 0.13210162,
0.05850654, 0.02294072, 0.01785989, 0.00369515, 0, 0.01062356,
0.4421863, 0.0073903, 0.24018476), T3 = c(0.000152045, 0.001197354,
0.008191425, 0, 0.070187776, 0.110612741, 0.077314885, 0.018207389,
0.012733769, 0.002014596, 0.009331762, 0.031473316, 0.488178501,
0.025961685, 0.144442755), T4 = c(7.77e-05, 0.00274, 0.0264,
0, 0.0815, 0.622, 0.00181, 0.0159, 0.00199, 0.00355, 0.0129,
0.0402, 0.138, 0.00858, 0.0438), T5 = c(0.000254664, 0.00324696,
0.019625008, 0, 0.036034889, 0.049532056, 0.055070988, 0.014277074,
0.017492201, 0.008149233, 0.005698096, 0.025450436, 0.328452282,
0.054848157, 0.381867957)), class = "data.frame", row.names = c(NA,
-15L))
编码:
#Reshape
df %>% pivot_longer(cols = -Var) %>%
ggplot(aes(x=name,y=value,fill=Var))+
geom_bar(stat='identity',position = 'stack')+
coord_flip()
输出:
推荐阅读
- html - 是否可以在 css 中更改 JPG 图像的背景颜色?
- flutter - 如何更改 DartPad 用户界面?
- flutter - 错误:方法“DioHttpHeaders.add”的命名参数少于覆盖方法“HttpHeaders.add”的命名参数
- html - 赋予每个权限的 iframe 沙盒属性是否等同于不使用沙盒?
- node.js - 请求 nodejs 中的 Access-Control-Allow-Headers 不允许请求标头字段 access-control-allow-origin
- python - 导入时Python项目结构错误
- git - 在 TeamCity 构建中,尝试将更改推送回 GIT VCS
- python - Flask Login 登录后返回 302 状态码(不重定向到主页)
- postgresql - pgfutter 导入空行
- wordpress - 错误:在服务“webserver”中使用了命名卷“cerbot-etc:/etc/letsencrypt:rw”,但在卷部分未找到声明