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

将笛卡尔分箱数据集转换为cos(phi)-半径坐标并可视化

笛卡尔分箱坐标到目标坐标系的转换逻辑解析

你需要搞懂的是从笛卡尔分箱坐标到「以(8,8)为原点、X轴为cos(phi)、Y轴为半径」的坐标系的转换逻辑,本质是极坐标的变形应用,下面一步步拆解:

1. 明确两个坐标系的基础定义

  • 原笛卡尔坐标系:分箱位置用数组的(列索引x, 行索引y)表示(因为pcolor默认列对应X轴、行对应Y轴),数据的中心在索引(8,8)处。
  • 目标坐标系:
    • 原点平移到原坐标系的(8,8)
    • Y轴 = 分箱到新原点的直线距离(即极坐标的半径r)
    • X轴 = 分箱相对新原点的极角phi的余弦值cos(phi)

2. 核心转换三步法

步骤1:平移原点,计算相对坐标

把每个分箱的原坐标(x,y)转换成以(8,8)为原点的相对偏移量:

dx = x - 8  # x是原分箱的列索引
dy = y - 8  # y是原分箱的行索引

比如原分箱(8,8)的相对坐标是(0,0),原分箱(9,8)(中心右侧第一个分箱)的相对坐标是(1,0),原分箱(8,9)(中心上方第一个分箱)的相对坐标是(0,1)。

步骤2:计算极坐标参数

从相对笛卡尔坐标(dx, dy)转换为极坐标的两个核心参数:

  • 半径r(目标Y轴):用勾股定理计算分箱到新原点的距离:
    r = np.sqrt(dx**2 + dy**2)
    
  • 极角phi:是相对坐标与新原点连线和**原坐标系正X轴(向右)**的夹角,用arctan2计算(能覆盖全平面的角度,范围是-π到π):
    phi = np.arctan2(dy, dx)
    

步骤3:映射到目标X轴

目标坐标系的X轴直接取极角的余弦值:

x_target = np.cos(phi)

这个值的特性很直观:

  • 分箱在中心正右方时,phi=0,cos(phi)=1
  • 分箱在中心正左方时,phi=π,cos(phi)=-1
  • 分箱在中心正上方/正下方时,phi=±π/2,cos(phi)=0
  • 左右对称的分箱(比如中心左上和右上对称位置),cos(phi)值相同,会落在目标坐标系的同一X位置。

3. 结合你的数据集的意义

你的数据是近似圆形,用这种坐标系展示的价值在于:

  • 能清晰对比不同半径(离中心的远近)上,数据在左右方向的分布规律
  • 你画的红色半径6、8的圆,对应目标坐标系中Y=6、Y=8的水平线,可直接观察这两个环上的数据分布差异
  • 损坏的单元格(值为None)只是不参与可视化,转换逻辑对它们同样适用,处理时直接跳过即可。

内容的提问来源于stack exchange,提问作者David K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:21:03