1

我正在使用解决方法从 ggplot 图例中删除对角线:https ://groups.google.com/forum/?fromgroups=#!topic/ggplot2/vJnF9_HBqx4

使用以下数据,如何更改组的颜色?

# Create data #

a<-as.data.frame(c(1,1,1,2,2))
b<-as.data.frame(c("A","A","B","B","A"))
c<-as.data.frame(c(20,20,60,50,50))
a<-cbind(a,b,c)
colnames(a)<-c("X","Gp","Y")

# Plot #

ggplot(a, aes(x=X, y=Y,fill=Gp)) + 
  geom_bar(stat = "identity", aes(colour = "black")) + 
  scale_color_identity() + 
  theme(legend.key = element_rect(colour = "black", size = 1))

我尝试更改以下元素:

scale_color_identity(values=c("red","yellow"))

geom_bar(stat = "identity", aes(colour = c("red","yellow")))

geom_bar(stat = "identity", aes(colour = "black"), fill=c("red","yellow"))

但每个都会产生一个错误。

4

2 回答 2

2

尝试这个。指南调用让您选择没有图例的比例。而且,您可以在没有 aes() 的情况下设置轮廓颜色。

在对图例中的对角线发表评论后进行编辑

基于这个 SO question remove contrast line in legend,您可以添加指南(填充等调用以删除对角线。

ggplot(a, aes(x=X, y=Y,fill=Gp)) + 
  geom_bar(stat = "identity", colour = "black") + 
  scale_fill_manual(values = c("red","yellow")) +
  guides(fill = guide_legend(override.aes = list(colour = NULL))) +
  guides(colour = FALSE)

在此处输入图像描述

于 2015-03-07T11:11:32.247 回答
1

您也可以调用geom_bar两次。一次用于图例,没有颜色参数,一次使用颜色参数但抑制图例

 ggplot(a, aes(x=X, y=Y,fill=Gp)) + 
       geom_bar(stat = "identity", color = 'black', show_guide = F) +
       geom_bar(stat = 'identity') + 
       scale_fill_manual(values = c('red', 'yellow') )
于 2015-03-07T14:44:25.747 回答