如何在Plotly中关闭箱线图/小提琴图的上下须悬停信息?
解决Plotly中关闭箱线图/小提琴图上下须悬停信息的问题
箱线图解决方案
要关闭上下须(upper/lower fence)的悬停信息、同时保留其他内容,可通过指定hoverinfo参数排除上下须相关项,或自定义hovertemplate精准控制显示内容。
方法1:使用hoverinfo参数
在go.Box中设置hoverinfo为需要显示的字段列表,明确排除lowerfence和upperfence:
import plotly.graph_objects as go import numpy as np np.random.seed(1) y0 = np.random.randn(50) - 1 y1 = np.random.randn(50) + 1 fig = go.Figure() # 保留y值、中位数、四分位数、极值和异常点,排除上下须 fig.add_trace(go.Box(y=y0, hoverinfo="y,median,q1,q3,min,max,points")) fig.add_trace(go.Box(y=y1, hoverinfo="y,median,q1,q3,min,max,points")) fig.show()
方法2:自定义hovertemplate
如果需要更灵活的显示格式,直接编写hovertemplate定义显示内容:
import plotly.graph_objects as go import numpy as np np.random.seed(1) y0 = np.random.randn(50) - 1 y1 = np.random.randn(50) + 1 fig = go.Figure() custom_template = ( "值: %{y}<br>" "中位数: %{median}<br>" "Q1: %{q1}<br>" "Q3: %{q3}<br>" "最小值: %{min}<br>" "最大值: %{max}<extra></extra>" ) fig.add_trace(go.Box(y=y0, hovertemplate=custom_template)) fig.add_trace(go.Box(y=y1, hovertemplate=custom_template)) fig.show()
小提琴图解决方案
对于包含内部箱线的小提琴图,同样可以用hoverinfo或hovertemplate控制悬停内容:
import plotly.graph_objects as go import numpy as np np.random.seed(1) y0 = np.random.randn(50) - 1 y1 = np.random.randn(50) + 1 fig = go.Figure() # 开启内部箱线,同时排除上下须的悬停信息 fig.add_trace(go.Violin(y=y0, box_visible=True, hoverinfo="y,median,q1,q3,min,max")) fig.add_trace(go.Violin(y=y1, box_visible=True, hoverinfo="y,median,q1,q3,min,max")) fig.show()
若需要自定义显示格式,直接替换为hovertemplate即可,格式逻辑与箱线图一致。
内容的提问来源于stack exchange,提问作者Stephen Williams
相关产品推荐
相关产品推荐

