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

时间:2013-03-25 18:49:49

标签: r ggplot2

我有以下情节:

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())

我想保留黑色边框效果

geom_bar(colour='black)

没有那个奇怪的对角划线穿过图例中描绘的方块。有没有办法解除那些或删除对角划线?

1 个答案:

答案 0 :(得分:1)

正如Didzis Elferts所提到的,有一个例子here(最后一个例子)。

诀窍是叠加两个图:第一个图以所需的方式处理图例,第二个图缺少图例但是为实际的图本身添加了边框。