R 具有不同数据帧的两个几何图形条的不同图例

R 具有不同数据帧的两个几何图形条的不同图例,r,ggplot2,R,Ggplot2,这件事让我困惑了好一阵子 我想用不同的data.frames为两个不同的geom(geom_bar)显示两个不同的图例 第一个图例的标题应为“边框”(由df.1中的边框填充),第二个图例的标题应为“产品”(由df.2中的产品填充)。两个data.frames都有column=category的共同点 你能解释一下吗 这是一个例子 #library(ggplot2) df.1 <- data.frame(category=c("A","A","A","B","B","B"), border

这件事让我困惑了好一阵子

我想用不同的data.frames为两个不同的geom(geom_bar)显示两个不同的图例

第一个图例的标题应为“边框”(由df.1中的边框填充),第二个图例的标题应为“产品”(由df.2中的产品填充)。两个data.frames都有column=category的共同点

你能解释一下吗

这是一个例子

#library(ggplot2)

df.1 <- data.frame(category=c("A","A","A","B","B","B"),
border=c("I","II","III","I","II","III"),
value=c(1,2,1,2,1,2)
)

df.2 <- data.frame(category=c("A","A","A","B","B","B"),
product=c("P1","P2","P3","P1","P2","P3"),
value=c(1,2,3,3,1,2)
)

ggplot()+
geom_bar(aes(x=category, y=value, fill=border), data=df.1, width=.3)+
geom_bar(aes(x=category, y=value, fill=product), data=df.2, position="dodge", width=.25)
#库(ggplot2)

df.1一个美学->一个传说是ggplot的基本设计原则。你可以(有点)绕开它,但这很难。有一件事值得一试,看起来还不错,那就是:

ggplot()+
    geom_bar(aes(x=category, y=value, fill=border), data=df.1, width=.3)+
    geom_bar(aes(x=category, y=value, colour=product), data=df.2, position="dodge", width=.25,alpha = 0.5)

一个美学->一个传奇是ggplot的基本设计原则。你可以(有点)绕开它,但这很难。有一件事值得一试,看起来还不错,那就是:

ggplot()+
    geom_bar(aes(x=category, y=value, fill=border), data=df.1, width=.3)+
    geom_bar(aes(x=category, y=value, colour=product), data=df.2, position="dodge", width=.25,alpha = 0.5)

我还建议@jorans建议可以与
+指南(color=guide\u legend(override.aes=list(fill=c(“红色”、“绿色”、“蓝色”))))一起使用。
我认为在color legend中覆盖填充是一个非常好的主意。就个人而言,我可能会将其设置为白色或透明。另外,稍微加大尺寸,这样彩色边框也会更清晰。嗨,Joran,谢谢你的建议。。。我也喜欢在图例中覆盖填充颜色的想法。我必须承认我并不完全满意:-(我仍在尝试……我想完成的事情可以在这里找到:@TomMartens您链接到的示例与您在问题中所勾画的完全不同。这些项目符号图从不在另一个着色条中放置多个条,这将消除对多个图例的需要。@Joran,我想显示一组3个“内”阴影边框条,也许你可以称之为对Stephen Now想法的误用。我认为你是对的,不需要两个图例,我要画的是堆叠条内的一组3个产品。每个条代表一个特定的数字,不同颜色的含义可以用另一种方式解释。还有3天的时间t表示“完美解决方案”:-)我还建议@jorans建议可以与
+指南一起使用(颜色=指南\图例(override.aes=列表(fill=c(“红色”、“绿色”、“蓝色”))
我认为覆盖颜色图例中的填充是一个非常好的主意。就我个人而言,我可能会将其设置为白色或透明。此外,稍微加大尺寸,使彩色边框也更清晰。嗨,Joran,谢谢你的建议……我也喜欢覆盖图例中的填充颜色。我必须承认我并不完全满意:-(我仍在尝试……我想完成的事情可以在这里找到:@TomMartens您链接到的示例与您在问题中所勾画的完全不同。这些项目符号图从不在另一个着色条中放置多个条,这将消除对多个图例的需要。@Joran,我想显示一组3个“内”阴影边框条,也许你可以称之为对Stephen Now想法的误用。我认为你是对的,不需要两个图例,我要画的是堆叠条内的一组3个产品。每个条代表一个特定的数字,不同颜色的含义可以用另一种方式解释。还有3天的时间t代表“完美解决方案”:-)这不是两个图例,我更喜欢joran的解决方案,但另一种可能性是
+指南(fill=guide\u legend(ncol=2,title.hjust=0.4))+比例填充离散(“border product”)`这不是两个图例,我更喜欢joran的解决方案,但另一种可能性是+指南(填充=指南\图例(ncol=2,title.hjust=0.4))+比例\填充\离散(“边界产品”)`