gpt4 book ai didi

r - 如何将数据框的名称和行名用于 ggplot 的 aes?

转载 作者:行者123 更新时间:2023-12-04 03:07:44 26 4
gpt4 key购买 nike

我有一个数据框 enrichment_df看起来像这样

                                         meclocycline pimozide isocorydine alvespimycin
day1_day3__sham3_strict_enrichment -0.869 0.855 -0.859 0.539
hour4_day1_day3__sham3_strict_enrichment -0.294 0.268 -0.539 -0.120
day7_day14__sham3_strict_enrichment -0.333 0.404 0.297 0.233
day90__sham3_strict_enrichment -0.511 -0.657 -0.519 0.184
day14__sham3_strict_enrichment -0.239 -0.420 0.513 -0.422
day7__sham3_strict_enrichment -0.394 -0.380 -0.408 0.337

我想用来自 https://stackoverflow.com/a/23228273/651779 的例子制作一个重叠的条形图.我希望填充是行名,而 x 轴是列名。我试着用它来绘制它
ggplot(enrichment_df, aes_string(names(enrichment_df), fill = rownames(enrichment_df))) + 
geom_bar(position = 'identity', alpha = .3)

但是,这会产生错误 object 'day1_day3__sham3_strict_enrichment' not found
如何在 ggplot 的 aes(或 aes_string)中使用 rownames 和 colnames?

最佳答案

每当使用 ggplot你应该有长格式的数据:

enrichment_df[ "day" ] <- rownames(enrichment_df)
df.molten <- melt( enrichment_df, id.vars="day", value.name="Enrichment", variable.name="Antibiotics" )

head(df.molten)
day Antibiotics Enrichment
1 day1_day3__sham3_strict_enrichment meclocycline -0.869
2 hour4_day1_day3__sham3_strict_enrichment meclocycline -0.294
3 day7_day14__sham3_strict_enrichment meclocycline -0.333

这可以由
ggplot(df.molten, aes( x = Antibiotics, y = Enrichment, fill = day ) ) + 
geom_bar( position = "identity", stat = "identity", alpha = .3 )

enter image description here

我不确定是否 position = "identity"负值就是你要找的。

关于r - 如何将数据框的名称和行名用于 ggplot 的 aes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23246070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com