如何正确删除Plotly热图中的数据以获得预期渲染效果
Plotly热图删除数据后空白区域被自动填充修复方案
问题原因
删除数据时直接移除了z_list中的对应元素,改变了z数组原有维度,Plotly的Heatmap默认会将传入的z匹配为完整矩形网格,自动填充了本应留空的缺失位置。
修复步骤
- 不要直接删除
z_list的元素,将需要移除的数据对应的z坐标位置的值替换为np.nan,全程保持z_list、x_list、y_list的维度和原完整热图的维度完全一致,不要修改x、y的取值列表。 - 在
go.Heatmap的配置中显式添加两个参数:connectgaps=False禁止自动连接填充缺失值,zsmooth=False关闭平滑插值,避免插值覆盖空白区域。
修正后代码示例
import numpy as np import plotly.graph_objects as go # 将需要删除的位置的z值设为nan,不要修改z、x、y的长度/维度 for del_pos in 删除位置坐标列表: i, j = del_pos data.z_list[i][j] = np.nan fig = go.Figure(data=go.Heatmap( z=data.z_list, x=data.x_list, y=data.y_list, connectgaps=False, zsmooth=False )) fig.update_xaxes(range=[data.x_min, data.x_max]) fig.update_yaxes(range=[data.y_min, data.y_max]) # 可选配置:如果需要空白位置完全透明,可追加以下代码指定nan值的渲染样式 # fig.update_traces( # hoverongaps=False, # selector=dict(type='heatmap') # )
补充说明
如果你的x、y为离散类别值,删除数据后不要调整x、y列表的顺序和元素,保持和原完整热图的x、y完全一致即可保证缺失位置正常留空。
内容的提问来源于stack exchange,提问作者Ikaryssik
相关产品推荐
相关产品推荐

