ggplot图例斜线

时间:2012-05-18 23:01:42

标签: r ggplot2

这一定让某人过去很生气,所以请原谅我,如果这是重复的,我会将其删除。使用geom_bar时,使用图例斜杠可能很烦人。例如:

x  <- c("a","b")
y  <- c(1,2)
df <- as.data.frame(cbind(x,y))
a  <- ggplot(df,aes(x=x,y=y,fill=x))
a + geom_bar(colour="black") + scale_fill_manual(values=c("white", "black"))

enter image description here

当我使用彩色条时,我会使用此工作,首先绘制没有颜色的条形图。

a + geom_bar() + geom_bar(colour="black",show_guide=FALSE) +
 scale_fill_manual(values=c("white", "black"))

然而,当填充为白色时,在没有边框的图例中留下不满意的空白框。 e.g。

enter image description here

我过去已经使用图形软件手动修复了这个问题,但现在我认为这对于足够多的人在这里提问一定是有用的。我们是否可以ggplot仅使用黑色轮廓绘制图例但没有斜线?

2 个答案:

答案 0 :(得分:13)

此,

 a + geom_bar() + geom_bar(colour="black",show_guide=FALSE) +
 scale_fill_manual(values=c("white", "black")) + 
 opts(legend.key = theme_rect(fill = 'black'))

给了我这个, enter image description here 感谢this site

Alos,您使用colour而不是fill得到相同的结果(可能有人认为一个更好)。

a + geom_bar() + geom_bar(colour="black",show_guide=FALSE) + 
scale_fill_manual(values=c("white", "black")) + 
opts(legend.key = theme_rect(colour = 'black'))

重要说明:现代版本的ggplot2 opts已弃用,已替换为themetheme_rect已被element_rect取代

答案 1 :(得分:3)

不,这就是它的轮廓。如果你使用灰色而不是白色(使用你的技巧),那么它就更容易辨别了。您还可以为图例添加背景颜色,使其更具可辨性并保持白色。有关更多详细信息,请参阅本页底部:

http://wiki.stdout.org/rcookbook/Graphs/Legends%20(ggplot2)/

我希望有一种不那么强硬的方式来做到这一点。