You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:55:07