![](/img/trans.png)
[英]How can I combine legends for color and linetype into a single legend in ggplot?
[英]How can I change the legend linetype in ggplot2?
我有这个简单的绘图,我无法根据绘图中的线型使用 scale_linetype_manual 更改图例中的线型。
生成图的代码是:
library(ggplot2)
x_1 <- rep(0:6, each = 2)
pdf_1 <- c(0,0.05,0.05,0.1,0.1,0.15,0.15,0.3,0.3,0.25,0.25,0.15,0.15,0)
x_2 <- rep(3:9, each = 2)
pdf_2 <- c(0,0.05,0.05,0.1,0.1,0.15,0.15,0.3,0.3,0.25,0.25,0.15,0.15,0)
data_1 <- data.frame(x_1, pdf_1,x_2,pdf_2)
ggplot()+
geom_line(data=data_1,aes(x=x_1, y=pdf_1, color="Forecaster_1"),linetype='solid',size=1)+
geom_line(data=data_1,aes(x=x_2, y=pdf_2, color="Forecaster_2"),linetype='dashed',size=1)+
labs(x = "x") +
labs(y = "PDF") +
scale_colour_manual(values = c('Forecaster_1' = 'cornflowerblue', 'Forecaster_2' = 'coral2')) +
scale_linetype_manual(values = c('Forecaster_1' = 'solid', 'Forecaster_2' = 'dashed'))
我会很感激有人帮助我。
如果您将线型映射为美学,然后确保对两个指南使用相同的名称,那会更好。 例如
ggplot()+
geom_line(data=data_1,aes(x=x_1, y=pdf_1, color="Forecaster_1", linetype='Forecaster_1'),size=1)+
geom_line(data=data_1,aes(x=x_2, y=pdf_2, color="Forecaster_2", linetype='Forecaster_2'),size=1)+
labs(x = "x") +
labs(y = "PDF") +
scale_colour_manual("Line", values = c('Forecaster_1' = 'cornflowerblue', 'Forecaster_2' = 'coral2')) +
scale_linetype_manual("Line", values = c('Forecaster_1' = 'solid', 'Forecaster_2' = 'dashed'))
您可以像这样覆盖默认图例:
ggplot() +
geom_line(
data = data_1,
aes(
x = x_1,
y = pdf_1,
color = "Forecaster_1"
),
linetype = 'solid',
size = 1
) +
geom_line(
data = data_1,
aes(
x = x_2,
y = pdf_2,
color = "Forecaster_2"
),
linetype = 'dashed',
size = 1
) +
labs(x = "x") +
labs(y = "PDF") +
scale_colour_manual(
values = c('Forecaster_1' = 'cornflowerblue', 'Forecaster_2' = 'coral2'),
guide = guide_legend(
override.aes = list(
linetype = c("solid", "dotted")
)
)
)
linetype
可以替换为此处列出的任何值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.