如何在plotly/ggplotly中控制地图图例的字体大小?
R语言plotly/ggplotly控制地图图例字体大小方法
问题对应效果示例:
根据绘图场景不同,调整方法分以下几类:
一、原生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
相关产品推荐
相关产品推荐

