我想绘制六种不同的线型,例如像这样:
d = data.frame(
x=sample(1:100,30,rep=T),
y=sample(1:100,30,rep=T),
exp=rep(c("foo","bar","baz","yak","yaz","bla"),5)
)
ggplot(d, aes(x, y, color=exp, lty=exp)) +
geom_point(alpha=0.15) +
geom_smooth(size=2)
这给了我以下传说:
显然,size=2
改变了这里的外观,使你现在无法再辨别出不同的线型。级别1,3和4看起来相似,5和6也是如此。当我将其调整为size=1
(或完全忽略大小)时,我得到了所需的结果:
是否有任何方法可以为图例中的不同线型获得有意义的表示,即使图中的线条比默认线条更粗?
答案 0 :(得分:1)
您可以通过调整图例属性的size
或width
来实现此目的。这些示例直接来自hadley's wiki on legend attributes。
# size attribute
theme(legend.key.size = unit(2, "cm"))
(或)
# width attribute
theme(legend.key.width = unit(2, "cm"))
也就是说,试试这个:
ggplot(d, aes(x, y, color=exp, lty=exp)) +
geom_point(alpha=0.15) +
geom_smooth(size=2) +
theme(legend.key.size = unit(2, "cm"))
注意:如果找不到require(grid)
错误,您可能需要加载unit()
。
编辑:这是我使用此代码获得的情节,对于您发布的示例:
ggplot(d, aes(x, y, color=exp, lty=exp)) +
geom_point(alpha=0.15) +
geom_smooth(size=2, se=FALSE) +
theme(legend.key.size = unit(2, "cm"))