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

如何为plotly::plot_geo创建的Choropleth地图添加带数值的州标签

实现美国州地图的自定义标签显示

当然可以实现这个需求!要给每个州添加"州缩写 (数值)"格式的标签,我们只需要调整add_trace里的文本参数,同时配置标签的显示位置和样式即可。

修改后的完整代码

library(tidyverse)
library(plotly)
set.seed(1)

# 生成数据并和州缩写绑定,确保数据对应关系准确
state_data <- tibble(
  state_abb = state.abb,
  density = sample(1:100, 50, replace = T)
)

g <- list(
  scope = 'usa',
  projection = list(type = 'albers usa'),
  lakecolor = toRGB('white')
)

plot_geo(state_data) %>% 
  add_trace(
    z = ~density, 
    # 构造目标格式的标签文本
    text = ~paste(state_abb, paste0("(", density, ")"), sep = " "),
    # 设置标签显示位置,可选top center/middle/bottom center等
    textposition = "top center",
    # 调整标签字体样式,避免和地图颜色冲突
    textfont = list(size = 10, color = "#222222"),
    span = I(0), 
    locations = ~state_abb, 
    locationmode = 'USA-states'
  ) %>% 
  layout(geo = g)

关键细节说明

  • 文本构造:用paste函数把州缩写和对应density值拼接成"AL (68)"的格式,直接赋值给text参数即可。
  • 标签位置:textposition参数控制标签的显示位置,top center会把标签放在每个州区域的上方中心,你也可以根据视觉效果换成middle、bottom center等选项。
  • 字体优化:通过textfont调整标签的大小和颜色,避免和地图色块混淆,提升可读性。
  • 数据绑定:把州缩写和density数据整合到同一个数据框中,能让plotly更方便地调用对应字段,避免数据错位。

运行这段代码后,每个州的上方就会显示你想要的格式标签啦!

内容的提问来源于stack exchange,提问作者DJC

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:32:36