我有一些数据,我想用柱状图来表示. 我有三个类别的价值,我想展示. 我用x轴表示一个(供体),用刻面表示另一个(分数),我想把x轴上的另一个变量(体积)"分组".但组似乎不能处理堆叠参数.

任何帮助都是最好的.

以下是数据的视图:

    > head(dat_test)
     Sample.ID  Kit Fraction Volume Donor    input reads_without_adapter short_reads UniVec_contaminants   rRNA
1 SV18860_0151 Mini Exosomal  250uL    D1  4502415                 60886     2003473              453080 255238
2 SV18860_0152 Mini Exosomal  250uL    D2 12377507                178344     4913533              303846 207784
3 SV18860_0153 Mini Exosomal  250uL    D3  5709522                 71621     1768752              512376 415050
4 SV18860_0154 Mini Exosomal  500uL    D1  3698808                 47131     1848724              617541  70741
5 SV18860_0155 Mini Exosomal  500uL    D2  8721473                 97316     4907378              392534  74877
6 SV18860_0156 Mini Exosomal  500uL    D3  5955653                 74085     3228077              747945 139265
  reads_used_for_alignment
1                  1729385
2                  6773026
3                  2941227
4                  1114412
5                  3248854
6                  1765877

以下是我当前的代码:

ggplot(dat_test_lng %>% filter(Kit=="Mini"), aes(fill=name, y=value, x=Donor,group=Volume)) + 
  geom_bar(position="fill", stat="identity") +
  facet_wrap(~ Fraction)

Here's the current output: As you can see each stacked bar has 3 sections in one (all 3 volumes), I would like the volumes separated and grouped on the x-axis

以下是数据:

> dput(dat_test_lng)
structure(list(Sample.ID = c("SV18860_0151", "SV18860_0151", 
"SV18860_0151", "SV18860_0151", "SV18860_0152", "SV18860_0152", 
"SV18860_0152", "SV18860_0152", "SV18860_0153", "SV18860_0153", 
"SV18860_0153", "SV18860_0153", "SV18860_0154", "SV18860_0154", 
"SV18860_0154", "SV18860_0154", "SV18860_0155", "SV18860_0155", 
"SV18860_0155", "SV18860_0155", "SV18860_0156", "SV18860_0156", 
"SV18860_0156", "SV18860_0156", "SV18860_0160", "SV18860_0160", 
"SV18860_0160", "SV18860_0160", "SV18860_0161", "SV18860_0161", 
"SV18860_0161", "SV18860_0161", "SV18860_0162", "SV18860_0162", 
"SV18860_0162", "SV18860_0162", "SV18860_0163", "SV18860_0163", 
"SV18860_0163", "SV18860_0163", "SV18860_0164", "SV18860_0164", 
"SV18860_0164", "SV18860_0164", "SV18860_0165", "SV18860_0165", 
"SV18860_0165", "SV18860_0165"), Kit = c("Mini", "Mini", "Mini", 
"Mini", "Mini", "Mini", "Mini", "Mini", "Mini", "Mini", "Mini", 
"Mini", "Mini", "Mini", "Mini", "Mini", "Mini", "Mini", "Mini", 
"Mini", "Mini", "Mini", "Mini", "Mini", "Mini", "Mini", "Mini", 
"Mini", "Mini", "Mini", "Mini", "Mini", "Mini", "Mini", "Mini", 
"Mini", "Mini", "Mini", "Mini", "Mini", "Mini", "Mini", "Mini", 
"Mini", "Mini", "Mini", "Mini", "Mini"), Fraction = c("Exosomal", 
"Exosomal", "Exosomal", "Exosomal", "Exosomal", "Exosomal", "Exosomal", 
"Exosomal", "Exosomal", "Exosomal", "Exosomal", "Exosomal", "Exosomal", 
"Exosomal", "Exosomal", "Exosomal", "Exosomal", "Exosomal", "Exosomal", 
"Exosomal", "Exosomal", "Exosomal", "Exosomal", "Exosomal", "cf-RNA", 
"cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", 
"cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", 
"cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", "cf-RNA", 
"cf-RNA", "cf-RNA"), Volume = c("250uL", "250uL", "250uL", "250uL", 
"250uL", "250uL", "250uL", "250uL", "250uL", "250uL", "250uL", 
"250uL", "500uL", "500uL", "500uL", "500uL", "500uL", "500uL", 
"500uL", "500uL", "500uL", "500uL", "500uL", "500uL", "250uL", 
"250uL", "250uL", "250uL", "250uL", "250uL", "250uL", "250uL", 
"250uL", "250uL", "250uL", "250uL", "500uL", "500uL", "500uL", 
"500uL", "500uL", "500uL", "500uL", "500uL", "500uL", "500uL", 
"500uL", "500uL"), Donor = c("D1", "D1", "D1", "D1", "D2", "D2", 
"D2", "D2", "D3", "D3", "D3", "D3", "D1", "D1", "D1", "D1", "D2", 
"D2", "D2", "D2", "D3", "D3", "D3", "D3", "D1", "D1", "D1", "D1", 
"D2", "D2", "D2", "D2", "D3", "D3", "D3", "D3", "D1", "D1", "D1", 
"D1", "D2", "D2", "D2", "D2", "D3", "D3", "D3", "D3"), reads_used_for_alignment = c(1729385L, 
1729385L, 1729385L, 1729385L, 6773026L, 6773026L, 6773026L, 6773026L, 
2941227L, 2941227L, 2941227L, 2941227L, 1114412L, 1114412L, 1114412L, 
1114412L, 3248854L, 3248854L, 3248854L, 3248854L, 1765877L, 1765877L, 
1765877L, 1765877L, 3232015L, 3232015L, 3232015L, 3232015L, 2599183L, 
2599183L, 2599183L, 2599183L, 4286751L, 4286751L, 4286751L, 4286751L, 
2300151L, 2300151L, 2300151L, 2300151L, 3047449L, 3047449L, 3047449L, 
3047449L, 1989053L, 1989053L, 1989053L, 1989053L), name = c("reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA", "reads_without_adapter", 
"short_reads", "UniVec_contaminants", "rRNA"), value = c(60886L, 
2003473L, 453080L, 255238L, 178344L, 4913533L, 303846L, 207784L, 
71621L, 1768752L, 512376L, 415050L, 47131L, 1848724L, 617541L, 
70741L, 97316L, 4907378L, 392534L, 74877L, 74085L, 3228077L, 
747945L, 139265L, 98787L, 6769604L, 338455L, 325634L, 34673L, 
1281557L, 4386L, 51362L, 121653L, 7604788L, 51390L, 416003L, 
55310L, 3228750L, 83833L, 222030L, 40500L, 1321450L, 5750L, 26393L, 
53279L, 3716785L, 42962L, 245214L)), row.names = c(NA, -48L), class = c("tbl_df", 
"tbl", "data.frame"))

这里有一个例子,我想,(只是视觉组织得更好一点)

enter image description here

推荐答案

您应该使用name列进行分组,并将Volume变量添加到facet_wrap():

ggplot(dat_test_lng %>% filter(Kit=="Mini"), aes(fill=name, y=value, x=Donor,group=name)) + 
  geom_bar(position="fill", stat="identity") +
  facet_wrap(~ Fraction + Volume)

enter image description here

R相关问答推荐

如何判断某列中由某些行组成的百分比

带有gplot 2的十字舱口

r中的stat_difference函数不起作用

在使用ggroove后,将图例合并在gplot中

根据元素和前一个值之间的差值过滤矩阵的元素

将饼图插入条形图

从服务器在Shiny中一起渲染图标和文本

跨列查找多个时间报告

R中的类别比较

当每个变量值只能 Select 一次时,如何从数据框中 Select 两个变量的组合?

如何在反曲线图中更改X标签

使用列中的值来调用函数调用中应使用的其他列

创建新列,其中S列的值取决于该行S值是否与其他行冗余

具有自定义仓位限制和计数的GGPLATE直方图

如何在shiny 的应用程序 map 视图宣传单中可视化单点

从矩阵创建系数图

随机生成样本,同时在R内的随机样本中至少包含一次所有值

删除r中每个因素级别的最后2行

在分面的ggplot2条形图中对条形图进行排序,并省略每组未使用的系数级别

在shiny /bslb中,当卡片是从json生成时,如何水平排列卡片?