我正在使用形状文件绘制带有ggplot的 Map . 然后我使用geom_line添加弧 . 弧根据其类型(单向或双向)着色,然后使用geom_point添加节点 . 节点根据其类型(原点,目的地,节点,停车场)进行着色 . 我想要两个不同的图例:一个用于节点类型,另一个用于弧类型 . 不幸的是,ggplot合并了传说并只产生了一个传奇 .
这是代码(抱歉,我无法提供可行的示例 . 我无法发送形状文件):
cityplot <- ggplot(data = s_zurich, aes(x = long, y = lat, group = id), fill = "white") +
geom_polygon(data = s_zurich, fill = "white") +
ylab("") + xlab("") +
theme(axis.text.x = element_blank(), axis.text.y = element_blank(), axis.ticks = element_blank())
cityplot_arcs <- cityplot +
geom_line(data = allarcs, aes(x = X1, y = X2, group = Id, colour = Direction), size = 1) +
xlab("") + ylab("")
cityplot_arcs_nodes <- cityplot_arcs + geom_point(aes(x = lon, y = lat, colour = Type), shape = 15, size = 4, inherit.aes = FALSE, data = allnodes) +
theme(legend.position = "none")
任何帮助,将不胜感激 .
1 回答
这是一个可能的解决方法 . 如果您可以保持
geom_polygon
填充aes()
调用 - 如上图所示,那么您可以使用填充形状作为点(21是圆圈)并设置填充属性而不是aes()
调用中的颜色 . 见下文:如果失败,您可以仅使用
ggplot()
绘制模拟图例,并使用grid.arrange()
将其绘制在图表旁边减去默认图例 . 如果您需要帮助,请在评论中告诉我 .