Plotly绘制热力图仅显示50个Y轴坐标,如何展示全量数据?
解决Plotly热力图Y轴仅显示部分ID的问题
当你的DataFrame包含10000个唯一ID时,Plotly会默认对Y轴标签进行采样(只显示部分)来避免界面拥挤。要展示全部ID,需要强制指定Y轴的所有刻度值:
核心修改代码
在创建热力图后,添加Y轴的自定义配置:
import plotly.graph_objects as go import pandas as pd df = pd.read_csv("my_data.csv") fig = go.Figure(data=go.Heatmap( z=df['B'], x=df['Year'], y=df['ID'], colorscale='Viridis')) # 强制显示所有ID作为Y轴刻度 fig.update_layout( yaxis=dict( tickmode='array', tickvals=df['ID'].unique(), # 传入所有唯一ID tickangle=45, # 倾斜标签避免重叠,可选 tickfont=dict(size=8), # 缩小字体,可选 fixedrange=False # 开启Y轴滚动,可选 ), height=1000 # 调整图表高度适配更多刻度,可选 ) fig.write_html("test.html")
额外优化提示
- 开启
fixedrange=False后,生成的HTML页面可以通过鼠标滚轮或拖拽Y轴区域来滚动查看全部ID - 若标签仍有重叠,可继续缩小字体大小,或把
tickangle设为90让标签垂直显示
内容的提问来源于stack exchange,提问作者honeymoon
相关产品推荐
相关产品推荐

