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

如何在Python中实现3D球面函数的2D彩色投影

3D球面函数的2D投影可视化(颜色映射第三维度)

你可以通过将Z值映射为2D平面的颜色来实现需求,同时直接在2D图上叠加散点,解决3D图中点可视性差的问题。以下是具体实现代码:

import numpy as np
import matplotlib.pyplot as plt

# 生成原始数据
t = np.linspace(-5.12, 5.12, 100)
y = np.linspace(-5.12, 5.12, 100)
X, Y = np.meshgrid(t, y)
Z = X ** 2 + Y ** 2

# 生成示例点(可替换为你需要展示的点集)
np.random.seed(42)
sample_points_x = np.random.uniform(-5.12, 5.12, 20)
sample_points_y = np.random.uniform(-5.12, 5.12, 20)
sample_points_z = sample_points_x ** 2 + sample_points_y ** 2

# 创建2D可视化
fig, ax = plt.subplots(figsize=(8, 6))

# 绘制热力图(用颜色表示Z值)
im = ax.pcolormesh(X, Y, Z, cmap='viridis', shading='auto')

# 叠加展示点
ax.scatter(sample_points_x, sample_points_y, color='red', s=50, edgecolor='white', label='Sample Points')

# 添加颜色条,关联Z值与颜色
plt.colorbar(im, label='Z = X² + Y²')

# 设置标题和标签
ax.set_title('2D Projection of Sphere Function (Color = Z Value)')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.legend()

plt.show()

关键说明

  • pcolormesh:将X-Y平面的网格区域与Z值绑定,用颜色直观呈现第三维度的数值大小,shading='auto'优化颜色过渡效果
  • scatter:在2D平面上直接绘制目标点,通过高对比度颜色(红色+白色边框)提升点的辨识度,解决3D图中遮挡问题
  • colorbar:添加颜色与Z值的对应标尺,让图表信息更清晰

你可以自行替换示例点集为需要展示的实际数据,也能调整cmap(颜色映射)、点的大小(s参数)等样式来适配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:23:05