我正在尝试使用ggplot2
新的(并且很棒的)简单功能映射包将几个地理数据集绘制在一起geom_sf
。当我试图强制线型特征的图例显示为一条线时,我对图例和错误代码Error: length(rows) == 1 is not TRUE
(似乎属于)感到困惑。ddply
这是我调用的生成下图的代码;一切都很好,除了图例,它的 Line1 显示了一个框/填充。
ggplot() +
geom_sf(data=sct, aes(fill=as.factor(sct$tc2)), color = "gray82") +
scale_fill_manual(values=c("white","goldenrod1","dodgerblue"),
labels = c("Omitted", "Control", "Treated"),
name = "Legend") +
geom_sf(data=lines1925All, aes(color="A"), linetype="dashed") +
scale_color_manual(values = c("A" = "olivedrab"),
labels = c("Line1"),
name = "what line?") +
theme_minimal() +
coord_sf(xlim=mapRange2[c(1:2)], ylim=mapRange2[c(3:4)])
这是图表:
现在,如果我尝试使用show.legend
(= TRUE
或= "line"
)强制图例看起来像一条线,在下面
geom_sf(data=lines1925All, aes(color="A"), linetype="dashed", show.legend = "line") +
我得到错误Error: length(rows) == 1 is not TRUE
。如果我单独绘制任一实例,geom_sf
则不会出现错误,并且可以使用show.legend = "line"
.
注意:我没有包含一个最小的可复制示例,因为我无法通过易于共享的数据来复制它;请参阅使用 geom_sf 时向 ggplot2 添加多个图例。我已经尝试了几天来找到答案,但没有运气。