我的表中有两个变量。我希望其中之一在图表上显示为三种颜色,但在图例上仅显示一种颜色。如何从图例中删除不对应于单独变量的 NA?
下面的代码允许我在图表上显示三种颜色(黑色、红色和绿色)以及第二个变量的蓝色。我只想要图例上的黑色和蓝色。你能帮我吗?
以下是对我的数据库和 R 脚本的一些观察:
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))
如果您只想在图例中显示某些类别,您可以通过
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")
)