R语言Plotly下拉菜单绘图 如何为三个图表分别设置专属标题
实现方法
原代码用的restyle方法仅支持修改图层(trace)属性,无法同步调整布局层面的图表标题,只要把按钮触发方法改成update,在每个按钮的参数中同步传入对应专属标题配置即可,修改后可直接运行的代码如下:
library(plotly) plot_ly(mtcars, x = ~gear) %>% add_trace(y = ~cyl, name = "cyl", visible = F, color=I("blue")) %>% add_trace(y = ~hp, name = "hp", visible = F, color=I("green")) %>% add_trace(y = ~gear, name = "gears", visible = F, color=I("red")) %>% layout( # 配置页面初始加载时显示的默认标题,匹配第一个默认展示的cyl图层 title = "气缸数(cyl)随档位分布", yaxis = list(title = "y"), updatemenus = list( list( y = 0.7, buttons = list( list( method = "update", args = list( # 第一部分参数:控制图层可见性,逻辑和原代码完全一致 list(visible = list(TRUE, FALSE, FALSE)), # 第二部分参数:切换到当前选项时同步更新的布局属性,这里写对应专属标题 list(title = "气缸数(cyl)随档位分布") ), label = "cyl" ), list( method = "update", args = list( list(visible = list(FALSE, TRUE, FALSE)), list(title = "马力(hp)随档位分布") ), label = "hp" ), list( method = "update", args = list( list(visible = list(FALSE, FALSE, TRUE)), list(title = "档位(gear)数值分布") ), label = "gear" ) ) ) ) )
关键说明
update方法的args接收两组配置:第一组对应图层属性修改(即原代码里的可见性规则),第二组对应布局属性修改,除了图表标题,需要同步切换的y轴标题、标注、配色规则都可以写在第二组配置里。- 必须在
layout顶层设置初始标题,否则图表刚加载时标题区域会显示空白。
内容的提问来源于stack exchange,提问作者Andyy Hu
相关产品推荐
相关产品推荐

