R plotly禁用特定数据点hoverinfo及优雅设置分类间距方案
R语言plot_ly分类间距与特定点悬浮禁用解决方案
问题1:单独禁用指定零值数据点的hoverinfo
可以实现,不需要关闭整条trace的悬浮提示,常用两种实现方式:
- 方案1:绘图后使用
style()函数匹配零值点单独设置悬浮属性
假设你绘图的trace序号为1,零值点的y轴数值为0,直接在绘图代码后追加如下代码即可:
p <- p %>% style(hoverinfo = "none", traces = 1, selector = list(y = 0))
selector参数可以自定义匹配规则,如果你是用特定标识列标记的占位行,也可以按自定义列匹配。
- 方案2:构造hovertext时空值位置传空值
提前构造悬浮文本向量,零值占位行对应的位置设为""或者NA,绘图时指定hovertext参数即可,零值位置不会弹出悬浮提示。
问题2:无需修改源数据的分类间距实现方案
不需要手动插入零值占位行,根据你的图表类型可以选择对应方案:
- 通用分类轴间隙调整(适用于所有使用分类x/y轴的图表)
直接在layout中设置轴的categorygap参数,参数取值为0-1的比例,代表分类之间的空隙占分类宽度的比例,示例代码:
p <- p %>% layout( xaxis = list( categorygap = 0.3 # 可根据需要调整数值,越大间距越宽 ) )
如果是分组图表需要在组之间增加更大的间隔,可以手动指定x轴分类顺序,在组之间插入空字符串作为占位分类,同时设置对应位置的刻度不显示即可,不需要修改源数据。
- 柱状图专属调整方案
如果绘制的是柱状图,可直接通过bargap(不同分类柱子的间距)和bargroupgap(同一分组内不同系列柱子的间距)参数调整,示例代码:
p <- p %>% layout( bargap = 0.2, bargroupgap = 0.1 )
内容的提问来源于stack exchange,提问作者Ainhoa
相关产品推荐
相关产品推荐

