手动更改图例ggplot2的形状

问题描述

我一直在自定义下图中的主题,线条和颜色

library(dplyr)
library(ggplot2)
library(readr)
library(zoo) 

cvper <-  read.csv("https://cloud.minsa.gob.pe/s/Y8w3wHsEdYQSZRp/download",stringsAsFactors = FALSE)
nuevos_cvper <- cvper %>% 
  group_by(FECHA_RESULTADO) %>%
  arrange(desc(FECHA_RESULTADO)) %>%
  summarize (casos_x_dia= n()) %>% 
  mutate(media_movil = rollmean(casos_x_dia,k=7,fill = NA,align = "right"))

prueba_legend <- ggplot(nuevos_cvper) + 
  geom_line(aes (x = FECHA_RESULTADO,y = media_movil,color = "media_movil"),size = 1.5) +
  geom_line(aes (x = FECHA_RESULTADO,y = casos_x_dia,color = "casos_x_dia"),linetype = "dashed" ) +
  geom_point (aes(x = FECHA_RESULTADO,color = "casos_x_dia")) +
  scale_colour_manual("",values = c("media_movil"="#CF3721","casos_x_dia"="#31A9B8","casos_x_dia"="#31A9B8")) +
  theme_bw () + theme(legend.position="bottom")

prueba_legend 

它以短线显示图例。我想将这些线条更改为圆形。我已经尝试过使用scale_shape_manual,但是它不起作用。有办法吗?

解决方法

由于使用的是最新的ggplot2版本之一(请确保通过install.packages("ggplot2")更新),因此可以使用参数key_glyph=来指定应使用的draw_key函数用于绘制给定几何图形和美学的图例字形。 See here for some more information and examples of usage;但是,我将通过下面的示例演示如何使用mtcarsggplot2版本3.3.2:

ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,color=Species)) +
  geom_line(key_glyph = "point")

enter image description here

您可能会注意到,就像我所做的那样,根据我的口味,点数有点小。可以通过为色彩美学指定的override.aes=函数使用guide_legend()进行调整,以使这些点变大。

ggplot(iris,color=Species)) +
  geom_line(key_glyph = "point") +
  guides(color=guide_legend(override.aes = list(size=3)))

enter image description here

,

也许您正在寻找这个:

""940""

代码:

""950""

输出:

enter image description here