使用此数据:
这段代码:
ggplot(data = trial, aes(x = as.factor(Year), y = DV,group = TMT, col = TMT,linetype=TMT)) +
theme_bw() +
geom_point(size = 3,position = pd) +
geom_errorbar(aes(ymin=trial$DV-trial$Error, ymax=trial$DV+trial$Error),
position = pd,
width = 0.1,
linetype=1) +
geom_line(position = pd) +
ylab("DV") +
xlab("Year") +
theme(axis.title.y=element_text(size=rel(1.1),vjust=0.2),
axis.title.x=element_text(size=rel(1.1), vjust=0.2),
axis.text.x=element_text(size=rel(1)),
axis.text.y=element_text(size=rel(1)),
text = element_text(size=13)) +
scale_colour_brewer(palette="Set1") +
scale_colour_manual(name = "Tmt",
labels = c("C", "S"),
values = c("red","blue"))+scale_linetype_manual(name = "Tmt",
labels = c("C", "S"),
values = c("solid","dashed"))
我正在创建以下图表:
我想在我的传奇中清楚地表达线型。我不确定我的手动缩放线型是否有效,或者是否因为图例的宽度太窄。我试过添加:
+guides(linetype=guide_legend(keywidth=5))
调整宽度,但不起作用。任何人都有任何想法如何解决这个问题?
非常感谢!
答案 0 :(得分:2)
要更改图例键的宽度,您应使用函数theme()
和参数legend.key.width=
。您还需要包网格来设置单位。
library(grid)
+ theme(legend.key.width=unit(1,"cm"))
但在您的特定情况下,您需要对您的情节进行另一次更改。当您在linetype=1
中设置geom_errorbar()
时,图例中的两条线都会显示为实线。因此,您需要将参数show_guide=FALSE
添加到geom_errorbar()
。
+ geom_errorbar(aes(ymin=DV-Error, ymax=DV+Error),
width = 0.1,linetype=1,
show_guide=FALSE)