plot_usmap在安全服务器上显示异常的原因排查求助
地图渲染异常排查请求
我写了一段R脚本,用来展示指定州县的事件数量,本地运行时地图显示正常,但在安全服务器上用相同代码和数据集运行时,地图出现异常——图例消失、县填充色缺失。我已经更新了R、RStudio以及所有相关包,但问题仍未解决,希望能帮忙排查原因。
代码示例
library(tidyverse) library(foreign) library(haven) library(data.table) library(devtools) library(usmap) joined_v_cross <- read_dta("path/to/my/data/here.dta") toy_example <- plot_usmap(data = joined_v_cross, values = "toy_values", include = c("AL", "AR", "FL", "GA", "LA", "NC", "SC", "KY", "TN", "MS"), color = "blue") + scale_fill_continuous(low = "white", high = "blue", name = " events count", label = scales::comma) + labs(title = "Example Map", subtitle = "1810 - 1900") + theme(legend.position = "right") toy_example
显示情况对比
- 本地正常显示:

- 服务器异常显示:

排查方向建议
- 检查服务器图形设备:安全服务器常使用无界面图形设备(如
png()),部分设备对ggplot2/usmap的渲染支持有限。可尝试显式指定设备类型,例如:png("map_output.png", type = "cairo") toy_example dev.off() - 验证数据一致性:确认服务器上的
joined_v_cross数据中,toy_values列的类型、数值范围与本地完全一致,且州/县的地理编码(如FIPS码)无缺失或格式错误——usmap依赖正确的编码匹配才能填充颜色。 - 对比包版本差异:运行
sessionInfo()导出本地和服务器的包版本,重点对比usmap、ggplot2、scales这几个核心包的版本,细微版本差异可能导致渲染问题。 - 确认路径与权限:确保服务器上
read_dta()的路径正确(优先用绝对路径),且对绘图输出目录有写入权限,避免因数据读取不全或无法输出导致异常。 - 简化代码排查:先移除
scale_fill_continuous和theme的自定义设置,仅保留基础的plot_usmap()调用,看是否能正常显示填充和图例,逐步定位问题代码段。
内容的提问来源于stack exchange,提问作者Elizabeth Breen
相关产品推荐
相关产品推荐

