R语言 如何使图例(ggplot)中的点和线具有不同的颜色

hvvq6cgz  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(99)
library(tidyverse)
ggplot(mpg)+
  geom_point(aes(x=displ,y=cty,color=drv))+
  geom_line(aes(x=displ,y=cty,color=drv))

字符串
这是结果
enter image description here
现在我希望图例中的点和线具有不同的颜色,具体来说,例如对于drv为4的分类,点颜色为红色,线颜色为绿色,并且要求在图例中显示

请避免使用“填充”美学来填充点,使用“颜色”美学来绘制线,因为我会对点的形状有要求。

xwmevbvl

xwmevbvl1#

使用软件包ggnewscale,功能new_scale_colour将现有的活动秤替换为另一个。另请参见this SO postthis R-bloggers post
两个注意事项:

  • 线的宽度更大,以使点更明显;
  • 我已经改变了线和点层的顺序,这样线就不会覆盖点。
library(tidyverse)
library(ggnewscale)

clr_lines <- setNames(c("green", "cyan", "magenta"), c("4", "f", "r"))
clr_points <- setNames(c("red", "black", "yellow"), c("4", "f", "r"))

ggplot(mpg) +
  geom_line(aes(x = displ, y = cty, color = drv), linewidth = 3) +
  scale_color_manual(values = clr_lines) +
  # start a new scale
  new_scale_colour() +
  geom_point(aes(x = displ, y = cty, color = drv)) +
  scale_color_manual(values = clr_points)

字符串
x1c 0d1x的数据
创建于2023-12-21使用reprex v2.0.2

相关问题