gpt4 book ai didi

r - R/ggplot中的条形图具有多个因素

转载 作者:行者123 更新时间:2023-12-03 20:30:36 25 4
gpt4 key购买 nike

我有一张 table ,我想用 ggplot2 制作一个情节,但到目前为止我一直没有成功。
我准备了一个看起来像这样的简化表

df1<-data.frame(Loc=c(rep("L1",5),rep("L2",3),rep("L3",4)),
Type=c(rep("T1",3),rep("T2",2),"T1","T2","T2","T1","T1","T2","T2"),
y2009=rep("A",12),y2010=c("A","B","A","A","A","A","B","B","A","A","B","B"),
y2011=c("B","B","B","A","B",rep("B",4),"A","B","B"))
df1

Loc 有 3 个位置。每个位置有 2 种类型的样本 T1 或 T2。它们从 2009 年开始为 A,随着时间的推移,一些变成了 B。所以,到 2011 年,有很多 B。

这是我到目前为止的数字
ggplot(df1,aes(x=Type)) + geom_bar()+facet_grid(~Loc)
ggplot(df1,aes(x=y2009,fill=Type)) + geom_bar(position="dodge")+facet_grid(~Loc)

enter image description here
enter image description here

我不太确定如何从三个因素中获得计数。

我想要一个类似于下面的图,我用油漆粗略地起草了它。刻面是位置,我只为 Loc1 制作了条形图作为示例。
enter image description here

最佳答案

尝试多层次的方面:

df2 <- melt(df1, id.vars=c("Loc", "Type"))
ggplot(data=df2, aes(x=value, fill=Type)) +
geom_bar() + facet_wrap(~ Loc + variable, nrow=1)

enter image description here

或者, facet_grid ,我认为它看起来更好,但与您的草图不太匹配:
df2 <- melt(df1, id.vars=c("Loc", "Type"))
ggplot(data=df2, aes(x=value, fill=Type)) +
geom_bar() + facet_grid(Loc ~ variable)

enter image description here

最后借 from this post ,您可以尝试通过颜色更好地区分位置(显然配色方案可能需要一些工作,但您明白了):
df2 <- melt(df1, id.vars=c("Loc", "Type"))
ggplot(data=df2, aes(x=value, fill=Type)) +
geom_rect(aes(fill=Loc),xmin =-Inf,xmax=Inf,ymin=-Inf,ymax=Inf,alpha = 0.1) +
geom_bar() +
facet_wrap(~ Loc + variable, nrow=1)

enter image description here

如果您想为每个位置实际使用单独的面板,我认为您必须使用生成自己的网格视口(viewport)和 grobs。有一个包 ggextra做了这样的事情,但它似乎不适用于最新的 R 版本。

关于r - R/ggplot中的条形图具有多个因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20953594/

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