一个变量具有三种颜色,但图例上只有一种颜色

问题描述 投票:0回答:1

我的表中有两个变量。我希望其中之一在图表上显示为三种颜色,但在图例上仅显示一种颜色。如何从图例中删除不对应于单独变量的 NA?

下面的代码允许我在图表上显示三种颜色(黑色、红色和绿色)以及第二个变量的蓝色。我只想要图例上的黑色和蓝色。你能帮我吗?

以下是对我的数据库和 R 脚本的一些观察:

enter image description here

ggplot(data = datateff) + 
  geom_line(aes(x = Year, y = tei_tl, group=Company, color=(ifelse((EU == 1), "green", 'black')))) + 
  labs(x="Year", y="") + 
  geom_point(size=1, aes(x = Year, y = tei_tl, size=.7, group=Company, color=tei_tl <1)) + 
  geom_line(aes(x = Year, y = Ann_av_te, group=Company, color=('#33CCFF'))) + 
  scale_color_manual(values = c( '#33CCFF',"black", "red", "green", "black"), 
                     name="", labels=c("TEI annual averages", "TEI")) + 
  facet_wrap(~ Company, nrow=5, ncol=4) + 
  theme(axis.text=element_text(size=6), axis.title=element_text(size=8), 
        text=element_text(size=8), 
        legend.text = element_text(colour="black", size = 6), 
        legend.title = element_text(colour="black", size=6), 
        legend.position = c(1.0, .01), 
        legend.justification = c("right", "bottom"), 
        legend.box.just = "right", 
        legend.margin = margin(6, 6, 6, 6))
r ggplot2 colors legend na
1个回答
0
投票

如果您只想在图例中显示某些类别,您可以通过

breaks=
scale_color_manual
参数来实现,但是需要使用命名的颜色向量。

使用基于

ggplot2::mpg
的最小可重现示例:

library(ggplot2)

ggplot(mpg, aes(cty, hwy, color = class)) +
  geom_point() +
  scale_color_manual(
    values = setNames(
      scales::pal_brewer(type = "qual")(7),
      unique(mpg$class)
    ),
    breaks = c("compact", "midsize"),
    labels = c(compact = "Compact", midsize = "Midsize")
  )

© www.soinside.com 2019 - 2024. All rights reserved.