我在这个问题中遇到了与@Mike 类似的问题。问题是如何设置地图中区域的轮廓颜色。
geom_polygon
建议的解决方案是在边界上添加一个绘图。只要绘制了整个区域,这将起作用。当试图限制到一个子区域时,多边形会被奇怪地绘制(可能是因为一些顶点被丢弃)。使用标准geom_map
示例:
# Create example data
ids <- factor(c("1.1", "2.1", "1.2", "2.2", "1.3", "2.3"))
values <- data.frame(id = ids, value = c(3, 3.1, 3.1, 3.2, 3.15, 3.5))
positions <- data.frame(
id = rep(ids, each = 4),
x = c(2, 1, 1.1, 2.2, 1, 0, 0.3, 1.1, 2.2, 1.1, 1.2, 2.5, 1.1, 0.3, 0.5, 1.2, 2.5, 1.2, 1.3, 2.7, 1.2, 0.5, 0.6, 1.3),
y = c(-0.5, 0, 1, 0.5, 0, 0.5, 1.5, 1, 0.5, 1, 2.1, 1.7, 1, 1.5, 2.2, 2.1, 1.7, 2.1, 3.2, 2.8, 2.1, 2.2, 3.3, 3.2)
)
# Plot data
ggplot(values, aes(fill = value)) +
geom_map(aes(map_id = id), map = positions) +
geom_polygon(aes(x,y,group=id), fill = NA, colour = 'red', data = positions) +
expand_limits(positions) +
ylim(0, 3)
一种可能的解决方法是使用颜色美学,geom_map
然后使用 手动选择轮廓颜色scale_colour_manual
,如下所示:
ggplot(values, aes(fill = value)) +
geom_map(aes(map_id = id, colour = 'white'), map = positions) +
scale_colour_manual(values=c('white')) +
expand_limits(positions) +
ylim(0, 3)
所以我有两个问题:
geom_polygon
限制轴限位时为什么不能正常工作?- 有没有比这里展示的更优雅的轮廓着色解决方案?
下面是绘图输出。提前谢谢了。