R geom_hline仅显示实线

R geom_hline仅显示实线,r,ggplot2,geom-hline,R,Ggplot2,Geom Hline,我有一些绘图,我正在使用ggplot2,使用基本绘图的函数,然后添加一些元素。我有一个问题,涉及到添加一个geom_hline,但如果它适用于其他绘图,那么这一个似乎不希望将线显示为实体以外的任何东西。当我为这一行设置scale\u linetype\u manual时,我必须使values=1,否则它会删除该行(yintercept=0.5)。 代码如下: #Aluminium (dissolved) prm <- dat2[dat2$ParamID == "Aluminium

我有一些绘图,我正在使用
ggplot2
,使用基本绘图的函数,然后添加一些元素。我有一个问题,涉及到添加一个
geom_hline
,但如果它适用于其他绘图,那么这一个似乎不希望将线显示为实体以外的任何东西。当我为这一行设置
scale\u linetype\u manual
时,我必须使
values=1
,否则它会删除该行(yintercept=0.5)。 代码如下:

#Aluminium (dissolved)
prm <- dat2[dat2$ParamID == "Aluminium (dissolved)",]
prm <- prm[prm$SiteID %in% c("SW1","SW2","SW3"),]
gplt <- ggplotCust(prm, c(0.05,1.0), dateStart, dateEnd, "Concentration (mg/L)",0.1) +
scale_y_continuous(trans='log10') +
  geom_hline(aes(yintercept=0.5,linetype="dotted"),colour="red",show.legend = NA) +
  scale_linetype_manual(name="Guideline Values",values=1, breaks=waiver(), labels="EA Criteria")
铝(溶解) prm将
linetype=“domind”
移出
aes()

UPD。如果要将其保留在图例中,可以将最后两行修改为以下内容:

  geom_hline(aes(yintercept=0.5,linetype="dotted"),colour="red",show.legend = NA) +
  scale_linetype_manual(name="Guideline Values",values=c(dotted=2), labels="EA Criteria")

这是可行的,但它没有出现在图例中(这就是为什么它出现在aes中)-请注意,这对其他数据集有效,但对这个数据集(实际上是同一数据集的其他数据子集)无效-实际上我让它工作了,但这没有意义-如果我在scale\u linetype\u手动调用中用value=c(6,8.5)替换value=1,那么它就工作了。但是这没有意义?你的例子包含了很多与问题无关的细节。尽量减少它,只保留重现问题所需的最小值。请参阅上的参考资料,并在我的答案中查看更新
  geom_hline(aes(yintercept=0.5,linetype="dotted"),colour="red",show.legend = NA) +
  scale_linetype_manual(name="Guideline Values",values=c(dotted=2), labels="EA Criteria")