Plotly山脊图顶部轨迹被截断,如何调整轴位置修复?
Plotly山脊图顶部轨迹被截断的解决办法
问题描述
用Plotly制作山脊图时,整体效果基本正常,但顶部轨迹被截断,无法通过代码向下移动轨迹,只能手动拖动轴调整。当前代码如下:
for i, time_unit in enumerate(time_units): fig = go.Figure() df_year = df[df['year'] == time_unit] months = sorted(df['month'].unique()) for j, month in enumerate(months): df_month = df_year[df_year['month'] == month] fig.add_trace(go.Violin( x=df_month['metric_value'], name=calendar.month_name[month], side='negative', box_visible=False )) fig.update_layout( title=f'Ridge Plot for Year {time_unit}', xaxis_title='Metric Value', yaxis_title='Month', yaxis=dict(automargin=True, domain=[0.00, 0.00], autorange='reversed',), violingap=0, violingroupgap=0, violinmode='overlay', height=1200 ) fig.show()
当前效果:
目标效果:
问题原因及修复方案
你的代码存在两个核心问题:
- y轴
domain设置错误:domain=[0.00, 0.00]会把y轴压缩到几乎不可见的区域,直接导致顶部轨迹被截断。 - 未指定violin的y轴位置:所有轨迹没有分配独立的y值,导致堆叠在一起,进一步加剧了截断问题。
修复后的完整代码:
import calendar import plotly.graph_objects as go for i, time_unit in enumerate(time_units): fig = go.Figure() df_year = df[df['year'] == time_unit] months = sorted(df['month'].unique()) for j, month in enumerate(months): df_month = df_year[df_year['month'] == month] fig.add_trace(go.Violin( x=df_month['metric_value'], y=[month]*len(df_month), # 给每个月份的violin分配独立y值 name=calendar.month_name[month], side='negative', box_visible=False, scalemode='count', # 统一按数据量缩放轨迹高度 scalegroup='all_months' # 所有轨迹归为同一缩放组 )) fig.update_layout( title=f'Ridge Plot for Year {time_unit}', xaxis_title='Metric Value', yaxis_title='Month', yaxis=dict( automargin=True, autorange='reversed', tickvals=months, # 设置y轴刻度为月份数值 ticktext=[calendar.month_name[m] for m in months] # 显示月份名称替代数字 ), violingap=0, violingroupgap=0, violinmode='overlay', height=1200 ) # 扩展y轴范围,给顶部/底部轨迹留出缓冲空间 fig.update_yaxes(range=[min(months)-0.5, max(months)+0.5]) fig.show()
关键调整说明
- 添加
y参数:让每个月份的violin在y轴上按顺序排列,避免堆叠。 - 移除错误的
domain设置:恢复y轴的正常显示空间。 - 统一轨迹缩放:通过
scalemode和scalegroup确保所有轨迹高度比例一致,不会出现单个轨迹过高的情况。 - 扩展y轴范围:
range=[min-0.5, max+0.5]给顶部和底部轨迹留出额外空间,彻底解决截断问题。
内容的提问来源于stack exchange,提问作者Nathaniel Saxe
相关产品推荐
相关产品推荐

