You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调整Plotly图形对象优化硅片蚀刻深度热图

硅片蚀刻深度热图优化方案

针对你提出的三个问题,直接给出可行的解决方案——改用plotly.graph_objects.Scatter替代Heatmap来实现自定义标记,从根源解决形状和空白问题:


1. 将数据方块改为正方形/填充圆形

Heatmap的单元格形状依赖坐标轴刻度分布,无法直接改为严格正形或圆形。改用散点标记模式,通过marker.symbol参数自定义形状:

  • 正方形:设置symbol='square'
  • 填充圆形:设置symbol='circle'

2. 坐标轴上的细长数据点转为正方形

使用散点标记后,所有数据点统一采用相同形状和大小,不会出现因坐标轴刻度导致的细长矩形,彻底解决边缘点变形问题。

3. 消除空白区域且不损失数据

Heatmap的xgap/ygap会导致重叠或空白,改用散点标记后,通过调整marker.size控制标记大小,让点紧密排列但不重叠,同时绑定坐标轴比例确保标记不变形,完全保留所有数据。


修改后的完整代码

import csv
import plotly.graph_objects as go

# 读取CSV数据
with open('MyCSV.csv', 'r') as f:
    reader = csv.DictReader(f)
    coords = [(float(row['X(mm)']), float(row['Y(mm)']), float(row['Delta Thick (nm)'])) for row in reader]

x, y, z = zip(*coords)

# 用散点标记替代热图,自定义形状和颜色
fig = go.Figure(data=go.Scatter(
    x=x,
    y=y,
    mode='markers',
    marker=dict(
        symbol='square',  # 切换为'circle'即可显示填充圆形
        size=12,          # 调整大小实现紧密排列(根据实际数据密度微调)
        color=z,
        colorscale=[[0, 'rgb(255, 0, 0)'], [0.5, 'rgb(255, 255, 0)'], [1, 'rgb(0, 255, 0)']],
        showscale=True    # 显示颜色刻度条
    )
))

# 设置坐标轴等比例,确保标记为正形
fig.update_layout(
    width=800,
    height=800,
    xaxis=dict(
        range=[-80, 80],
        scaleanchor="y",  # 绑定x轴比例到y轴
        scaleratio=1      # 强制x/y轴1:1比例
    ),
    yaxis=dict(
        range=[-80, 80]
    )
)

# 添加晶圆轮廓圆
fig.add_shape(
    type='circle',
    xref='x',
    yref='y',
    x0=-75,
    y0=-75,
    x1=75,
    y1=75,
    fillcolor='rgba(0,0,0,0)',
    line_color='black',
    line_width=2
)

fig.show()

关键说明

  • 散点标记完全摆脱了Heatmap的单元格布局限制,所有标记形状、大小统一可控
  • scaleanchor和scaleratio确保坐标轴等比例,避免标记被拉伸变形
  • 调整size参数可精准控制标记间距,无需依赖xgap/ygap导致的数据重叠或丢失

内容的提问来源于stack exchange,提问作者Mark so Fine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 04:05:40