gpt4 book ai didi

r - ggplot2:如何在图例中创建虚线?

转载 作者:行者123 更新时间:2023-12-04 09:31:38 27 4
gpt4 key购买 nike

我正在尝试创建一个由 2 个密度直线和 2 个虚线密度组成的 ggplot。 2 个密度为蓝色,另外 2 个为红色。我的情节应该包括一个关于这些密度的颜色和线条的图例。

尽管我认为必须有一个简单的解决方案,但我无法在我的图例中生成虚线。我试图基于几个线程来解决我的问题,例如herehere ,但我的 ggplot 代码已经有点复杂,这些线程的示例以不同的方式使用 ggplot。因此,我没有设法重现这些线程的结果。

这是我迄今为止所做的可重复示例。最后一行是 scale_linetype_manual似乎不起作用。如何在我的 grp3 和 grp4 的图例中生成虚线?

library(ggplot2)

set.seed(123)

# Example data
N <- 1000
x1 <- rnorm(N, 5)
x2 <- rnorm(N, 10)
x3 <- rnorm(N, 15)
x4 <- rnorm(N, 20)

ggplot() +
stat_density(aes(x = x1, col = "grp1"), position = "identity", geom = "line") +
stat_density(aes(x = x2, col = "grp2"), position = "identity", geom = "line") +
stat_density(aes(x = x3, col = "grp3"), position = "identity", geom = "line", linetype = 2) +
stat_density(aes(x = x4, col = "grp4"), position = "identity", geom = "line", linetype = 2) +
theme_bw() +
theme(axis.text.y = element_text(angle = 90, hjust = 0.3),
axis.title.x = element_text(vjust = - 0.5),
plot.title = element_text(vjust = 1.5),
legend.title = element_blank(), legend.position = c(0.75, 0.85),
legend.key = element_blank(), legend.text = element_text(size = 10)) +
scale_color_manual(values = c("red", "dodgerblue3", "red", "dodgerblue3")) +
scale_linetype_manual(values = c("grp1" = 1, "grp2" = 1, "grp3" = 2, "grp4" = 2))

enter image description here

最佳答案

library(reshape)
library(ggplot2)
N <- 1000
x1 <- rnorm(N, 5); x2 <- rnorm(N, 10); x3 <- rnorm(N, 15); x4 <- rnorm(N, 20)

df1 <- data.frame(x1,x2,x3,x4)
df2 <- melt(df1)

ggplot(data=df2,aes(x=value, col=variable, linetype=variable)) +
stat_density(position = "identity", geom = "line") +
theme_bw() +
theme(axis.text.y = element_text(angle = 90, hjust = 0.3),
axis.title.x = element_text(vjust = - 0.5),
plot.title = element_text(vjust = 1.5),
legend.title = element_blank(),
legend.key = element_blank(), legend.text = element_text(size = 10)) +
scale_color_manual(values = c("red", "dodgerblue3", "red", "dodgerblue3")) +
scale_linetype_manual(values = c(1, 1, 2, 2)) +
theme(legend.key.size = unit(0.5, "in"))

enter image description here

关于r - ggplot2:如何在图例中创建虚线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47595777/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com