【发布时间】:2017-08-29 11:24:24
【问题描述】:
我正在使用 ggplot,因此我可以在地图上获得渐变以显示大规模的数据。有 0 到 35,000 之间的点需要可视化。我已经完成了这项工作,但图例会自动显示每 10,000 个标签。
理想情况下,我希望图例显示最大数量,因此它可能只在底部显示 0,在顶部显示 35,000。这可行吗?
如果这有帮助,我的 ggplot 代码如下。
ggplot() +
geom_map(data = datafile, aes(map_id = Health_Board, fill = datafile$"2007"), map = Scot) +
geom_polygon(data = Scot, aes(x = long, y = lat, group = group), colour = "gray", fill = NA) +
expand_limits(x = Scot$long, y = Scot$lat) +
scale_fill_gradient(low = ("lightyellow"), high = ("red"), limits = c(0,35000)) +
ggtitle("2007") +
coord_fixed(1.2) +
theme(axis.text.x = element_blank(), axis.text.y = element_blank(),
axis.ticks = element_blank(), axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.border = element_blank(), panel.background = element_blank(),
legend.title = element_text(face = "bold"),
plot.title = element_text(face = "bold", hjust = 0.5))
【问题讨论】:
-
试试this?
-
谢谢。 Marco,我现在正在使用 scale_fill_gradient。如果我使用 scale_fill_gradientn,哪个参数可以让我像这样调整图例?
-
scale_fill_gradientn中的labels参数会对您有所帮助。如果您发布可重现的示例,有人可以帮助您提供详细的解决方案。 -
在
scale_fill_gradient内设置breaks = c(0, 35000)应该可以工作 -
@MarcoSandri 我不理解你的建议?为什么这超过了海报使用的内容?
标签: r ggplot2 mapping gradient legend