ggplot图例斜线

use*_*1_G 21 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"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

a + geom_bar() + geom_bar(colour="black",show_guide=FALSE) +
 scale_fill_manual(values=c("white", "black"))
Run Code Online (Sandbox Code Playgroud)

但是,当填充为白色时,在没有边框的图例中留下不满意的空白框.例如

在此输入图像描述

我过去已经使用图形软件手动修复了这个问题,但现在我认为这对于足够的人来说必须在这里提出一个问题.我们可以ggplot用黑色轮廓绘制图例,但没有斜线吗?

Eri*_*ail 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'))
Run Code Online (Sandbox Code Playgroud)

给了我这个, 在此输入图像描述 感谢这个网站.

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'))
Run Code Online (Sandbox Code Playgroud)

重要说明:现代版本的ggplot2 opts已被弃用并替换为theme,并theme_rect已被替换element_rect.

  • `opts(legend.key = theme_rect`就这么简单! (2认同)