1

这让我困惑了好一阵子……

我想用不同的data.frames为两个不同的geoms(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)
4

1 回答 1

4

一种美学 -> 一种传说是 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)

在此处输入图像描述

于 2012-12-27T23:54:48.280 回答