R ggplot如何从图例中删除特定项

12

如何从使用ggplot创建的图例中删除特定项?我的图是分面的,点大小提供了另一维度。由于图是分面的,因此我不需要某些图例项,因为它们已经由分面标题解释了,但对于点大小仍然有必要保留图例。

在下面的图中,我想删除“AREA”图例项目,因为它已经通过分面解释了,但保留“TOTAL_VOLUME”图例项目,以解释点大小。

a

这里是用于生成图的代码:

library(data.table) # Import libraries
library(ggplot2)
library(scales)

set.seed(1234) # Set Seed

area.list <- LETTERS[seq(1:7)] # 7 Possible areas
date.list <- seq(as.Date("2014/03/01"), by="month", length=13)

# Build a random data set
data <- data.table(AREA = sample(area.list, 80, replace=TRUE),
               DATE = sample(date.list, 80, replace=TRUE),
               VOLUME = rnorm(n=80, mean=100000,sd=40000),
               NON_CONFORMING_VOLUME = rnorm(n=80, mean=30000,sd=5000))
# Summarise data by area and date
data <- data[, list(TOTAL_VOLUME=sum(VOLUME),
                TOTAL_NC_VOLUME=sum(NON_CONFORMING_VOLUME)),
         by=list(AREA, DATE)]
data$PERCENT_NC <- data$TOTAL_NC_VOLUME / data$TOTAL_VOLUME * 100

p <- ggplot(data = data, aes(x = DATE, 
                          y = PERCENT_NC,
                          colour = AREA)) +
  geom_point(aes(size = TOTAL_VOLUME)) +
  geom_line() +
  facet_grid(. ~ AREA) +
  theme(legend.position="bottom", axis.text.x=element_text(angle=90,hjust=1)) +
  ggtitle("Percent Non-Conforming by Area by Month") +
  labs(x = "Month", y = "% Non-Conforming") +
  scale_size_continuous(labels = comma)

plot(p)

我尝试在 geom_point() 中添加 show_guide=FALSE,但这会同时移除 TOTAL_VOLUME 和 AREA。

谢谢

1个回答

17

您可以按以下方式为每个刻度设置指南:

p + guides(size = "legend", colour = "none")

绘图


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接