知道为什么 geom_text 的颜色不起作用吗?我原本以为底部的 A、B、C 是红色、黄色和蓝色,但现在它们都显示为黑色。
library(tidyverse)
ln <- data.frame(xval=c(1,2,3),yval=c(3,2,5))
txt <- data.frame(xval=c(1,2,3),yval=c(0.5,0.5,0.5),txt=c("A","B","C"),anc=c("red","yellow","blue"))
ggplot() +
geom_line(data=ln, aes(x=xval, y=yval, color="line"), linewidth=1) +
geom_point(data=ln, aes(x=xval, y=yval, color="dot"), size=2.5) +
geom_text(data=txt, aes(x=xval, y=yval, label=txt, color=anc), size=3) +
ylim(0, 6) + xlim(0, 4) +
scale_colour_manual(name="", values = c("line"="cyan", "dot"="black"))
尝试了上面的代码,我期待 A、B 和 C 为红色、黄色和蓝色,但惊讶地发现全部显示为黑色
听起来您希望某些层使用
scale_colour_manual
而其他层使用 scale_colour_identity
,这可以使用 ggnewscale
包:
ggplot() +
geom_line(data=ln, aes(x=xval, y=yval, color="line"), linewidth=1) +
geom_point(data=ln, aes(x=xval, y=yval, color="dot"), size=2.5) +
ylim(0, 6) + xlim(0, 4) +
scale_colour_manual(name="", values = c("line"="cyan", "dot"="black")) +
ggnewscale::new_scale_colour() +
geom_text(data=txt, aes(x=xval, y=yval, label=txt, color=anc), size=3) +
scale_color_identity()