0

使用这些数据:

http://pastebin.com/pAQePpxr

而这段代码:

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))

调整宽度,但它不起作用。有人知道如何解决这个问题吗?

非常感谢!

4

1 回答 1

2

要更改图例键的宽度,您应该使用函数theme()和参数legend.key.width=。您还需要包网格来设置单位。

library(grid)
+ theme(legend.key.width=unit(1,"cm"))

但是在您的特定情况下,您需要对情节进行另一次更改。正如您在图例linetype=1中的两行中设置的那样,将显示为实心。geom_errorbar()所以你需要show_guide=FALSEgeom_errorbar().

  + geom_errorbar(aes(ymin=DV-Error, ymax=DV+Error),
                width = 0.1,linetype=1,
                   show_guide=FALSE)
于 2013-11-08T07:11:45.373 回答