python plotly小提琴图显示负尾
Posted
技术标签:
【中文标题】python plotly小提琴图显示负尾【英文标题】:python plotly violin plot shows negative tail 【发布时间】:2021-10-23 16:30:16 【问题描述】:python plotly violin plot 显示负尾,但没有低于 0 的值。实际 y 轴在 0 到 23 之间(24 小时间隔)。但小提琴情节尾部超过 23 且小于 0(添加到图表中的第 0 和第 23 边距水平)。
代码:
fig = go.Figure()
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'CRITICAL' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'CRITICAL' ],
legendgroup='CRITICAL', scalegroup='CRITICAL', name='CRITICAL',
line_color='blue')
)
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'MAJOR' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'MAJOR' ],
legendgroup='MAJOR', scalegroup='MAJOR', name='MAJOR',
line_color='red')
)
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'WARNING' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'WARNING' ],
legendgroup='WARNING', scalegroup='WARNING', name='WARNING',
line_color='green')
)
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'MINOR' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'MINOR' ],
legendgroup='MINOR', scalegroup='MINOR', name='MINOR',
line_color='orange')
)
fig.update_traces(box_visible=True, meanline_visible=True )
fig.update_layout(violinmode='group',width=1000,
height=600)
fig.show()
【问题讨论】:
【参考方案1】:如果您查看 Violin 文档 (https://plotly.com/python-api-reference/generated/plotly.graph_objects.Violin.html),您可能需要在所有 Violin 初始化中添加 spanmode = 'hard'
。这样,您的最大和最小跨度由您的数据设置,而不是由 Silverman 的经验法则(带宽)。
spanmode - 设置计算密度函数的数据空间跨度的方法。 “软”意味着跨度从样本的最小值减去两个带宽到样本的最大值加上两个带宽。 “硬”表示跨度从样本的最小值到最大值。对于自定义跨度设置,使用模式“手动”并填写跨度属性。
【讨论】:
以上是关于python plotly小提琴图显示负尾的主要内容,如果未能解决你的问题,请参考以下文章
数据可视化应用绘制half-half plots图(附R语言代码)
Python使用matplotlib可视化小提琴图seaborn中的violinplot函数可视化多分类变量的小提琴图(Violin Plot)
Python使用matplotlib可视化多分类变量组合下分组小提琴图使用seaborn中的catplot函数可视化多分类变量组合下分组小提琴图(Categorical Plots)
plotly vs seaborn:python中的小提琴情节
R语言plotly可视化:plotly可视化分裂的分组小提琴图每个小提琴图内部分为两组数据每个分组占小提琴图的一半(Split violin plot in R with plotly)