如何使用plot_ly的subplot函数统一设置子图标题字号?
解决plotly子图标题字号统一修改的问题
当使用plotly的subplot功能时,仅设置yaxis的titlefont只会对第一个子图生效——因为子图的轴会被自动编号,3行子图对应的y轴依次是yaxis、yaxis2、yaxis3。下面提供两种可行的解决方法:
方法一:创建子图时单独设置字号
在生成每个plot_ly对象时,直接为其y轴指定标题字号,再进行子图组合:
# 为每个子图单独配置y轴标题字号 unemployed <- plot_ly(data = your_data) %>% layout(yaxis = list(titlefont = list(size = 8))) employed <- plot_ly(data = your_data) %>% layout(yaxis = list(titlefont = list(size = 8))) not_in_labor_force <- plot_ly(data = your_data) %>% layout(yaxis = list(titlefont = list(size = 8))) # 组合子图并设置全局标题和其他样式 subplot(unemployed, employed, not_in_labor_force, nrows = 3, titleY = TRUE, titleX = TRUE, shareX = TRUE) %>% layout(title = "Employment, Unemployment, and Not in Labor Force Shares by Race", yaxis = list(zerolinewidth = 2, zerolinecolor = '#ffff'))
方法二:在组合后的layout中逐个指定轴样式
在subplot后的layout里,针对每个子图的y轴(yaxis、yaxis2、yaxis3)分别设置标题字号:
subplot(unemployed, employed, not_in_labor_force, nrows = 3, titleY = TRUE, titleX = TRUE, shareX = TRUE) %>% layout(title = "Employment, Unemployment, and Not in Labor Force Shares by Race", yaxis = list(zerolinewidth = 2, zerolinecolor = '#ffff', titlefont = list(size = 8)), yaxis2 = list(titlefont = list(size = 8)), yaxis3 = list(titlefont = list(size = 8)))
注意:不要直接使用titlefont2这类写法,plotly的轴样式需要通过对应轴的编号(如yaxis2)来配置。
内容的提问来源于stack exchange,提问作者John Gorman
相关产品推荐
相关产品推荐

