简体   繁体   English

如何从图例中删除边框而不从ggplot2中的条形图中删除边框

[英]How to remove borders from the legend without removing borders from the bar plot in ggplot2

I have the following plot: 我有以下情节:

library(reshape)
library(ggplot2)
library(gridExtra)
require(ggplot2)



data2<-structure(list(IR = structure(c(4L, 3L, 2L, 1L, 4L, 3L, 2L, 1L
), .Label = c("0.13-0.16", "0.17-0.23", "0.24-0.27", "0.28-1"
), class = "factor"), variable = structure(c(1L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L), .Label = c("Real queens", "Simulated individuals"
), class = "factor"), value = c(15L, 11L, 29L, 42L, 0L, 5L, 21L, 
22L), Legend = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), .Label = c("Real queens", 
"Simulated individuals"), class = "factor")), .Names = c("IR", 
"variable", "value", "Legend"), row.names = c(NA, -8L), class = "data.frame")
p <- ggplot(data2, aes(x =factor(IR), y = value, fill = Legend, width=.15))


data3<-structure(list(IR = structure(c(4L, 3L, 2L, 1L, 4L, 3L, 2L, 1L
), .Label = c("0.13-0.16", "0.17-0.23", "0.24-0.27", "0.28-1"
), class = "factor"), variable = structure(c(1L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L), .Label = c("Real queens", "Simulated individuals"
), class = "factor"), value = c(2L, 2L, 6L, 10L, 0L, 1L, 4L, 
4L), Legend = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), .Label = c("Real queens", 
"Simulated individuals"), class = "factor")), .Names = c("IR", 
"variable", "value", "Legend"), row.names = c(NA, -8L), class = "data.frame")
q<- ggplot(data3, aes(x =factor(IR), y = value, fill = Legend, width=.15))


##the plot##
q + geom_bar(position='dodge', colour='black') + ylab('Frequency') + 
        xlab('IR')+scale_fill_grey() +
        theme(axis.text.x=element_text(colour="black"), 
        axis.text.y=element_text(colour="Black"))+ 
        opts(title='', panel.grid.major = theme_blank(),panel.grid.minor = 
        theme_blank(),panel.border = theme_blank(),panel.background = 
        theme_blank(), axis.ticks.x = theme_blank())

I want to keep the black border effect 我想保持黑色边框效果

geom_bar(colour='black)

without having that weird diagonal dash across the blocks depicted in the legend. 而在图例中所描绘的方块上没有怪异的斜线。 Is there any way to decouple those or remove that diagonal dash? 有什么办法可以使它们解耦或删除对角线吗?

As Didzis Elferts mentioned, there's an example of this here (last example). 作为Didzis Elferts提到的,有这样的例子在这里 (最后一个例子)。

The trick is to superimpose two plots: the first plot takes care of the legend in the desired way, and the second plot lacks a legend but adds borders to the actual plot itself. 诀窍是要叠加两个图:第一个图以所需的方式处理图例,第二个图没有图例,但为实际图本身添加了边框。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM