定制疟疾地图集项目自动绘图

问题描述 投票:0回答:1

我正在尝试绘制来自 Malaria Atlas Project 的一些数据。因此,我查看了 vignette 并使用了一个示例来开始:

if (!require("malariaAtlas")) install.packages("malariaAtlas")
    
shape <- getShp(ISO = "MDG", admin_level = "admin1")
raster <- getRaster(dataset_id = "Explorer__2020_Global_PfPR", shp = shape, year = 2013)

p <- autoplot(object = raster,
              legend_title = "",
              plot_titles = FALSE, 
              fill_colour_palette = "PuBu")

产生下图:

test pic 1

和警告消息:

在 geom_spatraster(data = object, use_coltab = use_coltab, ...) 中:忽略未知参数:

legend_title
plot_titles
fill_colour_palette

替代绘图版本

autoplot_MAPraster
支持一些服装化:

p <- autoplot_MAPraster(object = raster, 
                        legend_title = "", 
                        plot_titles = FALSE, 
                        fill_colour_palette = "PuBu")

test pic 2

对于我的应用程序,我需要自定义图形(图例颜色和标题、栅格上的绘图形状、自定义标题……)。因此,我检查了源代码并修改了autoplot.MAPshp代码,没有任何问题,但我不知道如何让

ggplot2::geom_raster(data = object[object$raster_name == rastername,], ggplot2::aes_string(x="x", y="y", fill = "z"))
适用于autoplot.MAPraster代码。特别是,
object[object$raster_name == rastername,]
,其中
object = raster
,给出错误消息:

h(simpleError(msg, call)) 中的错误: 在为函数“[”选择方法时评估参数“i”时出错:[子集]无效名称

我的目标是(对我来说)autoplot.MAPraster源代码的工作版本,可以修改。

r ggplot2 maps customization
1个回答
0
投票

您可以使用

ggtitle()
作为主标题,使用
scale_fill_gradient()
为地图着色。

p + ggtitle("Some Title") +
  scale_fill_gradient(low = "lightgreen", high = "darkgreen")

输出: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.