ggplot手动调整属性

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

我正在尝试更改 ggplot 中该图的图例。我希望它在一个图例中具有适当的线型和颜色。但是,如果我可以修复线型使其正确并且忘记不同的颜色,我会很满意。下面的代码完成了我想要的一切,期望在图例中具有正确的线型。最后一行代码似乎没有执行任何操作,但我将其包含在内是为了展示迄今为止我的最佳尝试。

library(tidyverse)

ggplot(data.frame(x = c(-3,3)), aes(x = x))+
  stat_function(fun=dnorm, aes(color="mean 2"), linetype = 1,  
                linewidth = 1.5, args = list(mean = 2))+ 
  stat_function(fun=dnorm, aes(color="mean 0"), linetype = 2,  
                linewidth = 1.5, args = list(mean = 0))+ 
  scale_color_manual(values = c("red", "blue"), 
                     name = "Mean")+ 
  scale_linetype_manual(values = c(1, 2))

这是生成的情节:

我知道如何在 R 基础和其他软件中做我想做的事情,但我坚持使用 ggplot 以便与该项目的其他方面保持一致。我也知道有更好的方法来绘制正态分布。这是我的问题的简化版本,使用了一个更具可重复性且更易于其他人访问的示例,以便最大限度地提高解决问题的机会。

奖励:如果你知道为什么我的尝试没有成功,我也很想知道!

r ggplot2 legend
1个回答
0
投票

linetype
也必须符合审美。手动秤也必须同名。

library(tidyverse)

ggplot(data.frame(x = c(-3,3)), aes(x = x))+
  stat_function(fun=dnorm, aes(color="mean 2", linetype="mean 2"), 
                linewidth = 1.5, args = list(mean = 2))+ 
  stat_function(fun=dnorm, aes(color="mean 0", linetype = "mean 0"), 
                linewidth = 1.5, args = list(mean = 0))+ 
  scale_color_manual(values = c("red", "blue"), 
                     name = "Mean")+ 
  scale_linetype_manual(values = c(1, 3), name="Mean")

创建于 2024-04-07,使用 reprex v2.0.2

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