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

如何在plotly/ggplotly中控制地图图例的字体大小?

R语言plotly/ggplotly控制地图图例字体大小方法

问题对应效果示例:
plotly地图图例调整示例

根据绘图场景不同,调整方法分以下几类:

一、原生plotly绘制地图

plotly的图例分两类,调整参数位置不同:

  • 分类图例(离散值填充的面/点图例)
    直接在layout()的legend层级配置字体属性即可,可分别控制图例条目、图例标题的字号:
    library(plotly)
    # 示例离散填充地图
    fig <- plot_ly(
      type = 'choropleth',
      locations = state.abb,
      locationmode = 'USA-states',
      # 用离散值生成分组图例
      z = cut(state.x77[,1], breaks = 5),
      colors = "Blues"
    ) %>% layout(geo = list(scope = 'usa'))
    
    # 调整图例字体
    fig %>% layout(
      legend = list(
        font = list(size = 12), # 控制图例分类条目的字体大小
        title = list(
          text = "人口分组",
          font = list(size = 16) # 控制图例标题的字体大小
        )
      )
    )
    
  • 渐变色条图例(连续值填充的色阶图例,也是地图最常用的图例形式)
    这类图例的字体需要通过colorbar()函数配置,分别调整刻度文字、标题文字的字号:
    # 示例连续值填充地图
    fig <- plot_ly(
      type = 'choropleth',
      locations = state.abb,
      locationmode = 'USA-states',
      z = state.x77[,1],
      colors = "Blues"
    ) %>% layout(geo = list(scope = 'usa'))
    
    # 调整色条图例字体
    fig %>% colorbar(
      title = "人口数",
      tickfont = list(size = 12), # 色条刻度数值的字体大小
      titlefont = list(size = 16) # 色条标题的字体大小
    )
    

二、ggplot2绘图后转ggplotly

有两种调整方式,优先选第一种:

  • 在ggplot绘图阶段直接配置主题字体,转成plotly对象后会自动继承样式:
    library(ggplot2)
    library(plotly)
    # 绘制ggplot地图
    p <- ggplot(map_data("state"), aes(long, lat, group = group, fill = lat)) +
      geom_polygon() +
      theme(
        legend.text = element_text(size = 12), # 图例条目/刻度字体大小
        legend.title = element_text(size = 16) # 图例标题字体大小
      )
    # 转出交互式图即可
    ggplotly(p)
    
  • 如果转图后ggplot主题样式没有生效,可以在转出的plotly对象上套用原生plotly的调整规则:分类图例用layout(legend=...)调整,连续色条用colorbar(...)调整,参数和上文原生plotly的写法完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:36:21