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

如何为Python生成的正态分布散点图添加基于X/Y角度的彩虹色?

根据X/Y角度设置散点图颜色的解决方案

我懂你想要的效果——让散点颜色和每个点相对原点的角度绑定对吧?其实这个实现起来很简单,核心就是计算每个点的角度,再把这个角度值作为颜色参数传给scatter()函数就行。

具体步骤和完整代码

首先用np.arctan2(Y, X)计算每个点的弧度角度(这个函数会返回从X轴正方向到点(X,Y)的角度,范围是[-π, π]),然后把这个角度数组直接赋值给scatter()的c参数,搭配合适的颜色映射(colormap)就能实现你要的彩色效果。

完整代码如下:

import numpy as np
import matplotlib.pyplot as plt

n = 1024
X = np.random.normal(0, 1, n)
Y = np.random.normal(0, 1, n)

# 计算每个点相对原点的弧度角度
angles = np.arctan2(Y, X)

# 绘制散点图,用角度作为颜色依据
plt.scatter(X, Y, c=angles, cmap='viridis', alpha=0.6)

# 添加颜色条,直观展示颜色与角度的对应关系
plt.colorbar(label='Angle (radians)')

# 可选:设置对称坐标轴,让图形更美观
plt.xlim(-3, 3)
plt.ylim(-3, 3)

plt.title('Scatter Plot Colored by Angle')
plt.show()

关键部分解释

  • np.arctan2(Y, X):这是计算角度的核心,比普通arctan()更准确,能区分不同象限的角度。
  • c=angles:告诉matplotlib用angles数组的值决定每个点的颜色。
  • cmap='viridis':指定颜色映射方案,你可以换成plasma、rainbow等其他样式,按喜好调整。
  • alpha=0.6:设置点的透明度,避免点重叠时看不清细节。

运行这段代码后,你就能看到散点颜色随角度渐变的效果,颜色条也能帮你清晰对应颜色和角度的关系。

内容的提问来源于stack exchange,提问作者user9061464

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:07:47