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

如何用np.arange()创建轴范围正确的3D散点图?

解决3D散点图轴范围问题

首先,你的代码存在两个关键问题:

  • 用np.arange(0,20,0.2)生成的x、y是线性递增序列,导致散点呈现直线分布,和参考图的随机散点形态不符
  • y轴的生成范围与参考图不匹配,且未显式指定轴范围来锁定显示区间

以下是修正后的代码:

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(figsize=[15,15])

# 生成和参考图匹配的随机数据,确保三个维度长度一致
z = 520 * np.random.random(100)
x = np.random.uniform(0, 20, size=100)  # x轴范围0-20,随机分布
y = np.random.uniform(0, 100, size=100) # y轴范围0-100,匹配参考图

ax3 = fig.add_subplot(2,2,3, projection='3d')
ax3.set_xlabel('x', c='r', size=14)
ax3.set_ylabel('y', c='r', size=14)
ax3.set_zlabel('z', c='r', size=14)  

# 显式设置各轴范围,精准控制显示区间
ax3.set_xlim(0, 20)
ax3.set_ylim(0, 100)
ax3.set_zlim(0, 520)

ax3.scatter3D(x,y,z, c=z, cmap='jet')
ax3.view_init(25,45);

关键说明:

  • 用np.random.uniform()生成随机分布的x、y数据,替代线性序列,还原参考图的散点分布形态
  • 通过set_xlim()/set_ylim()/set_zlim()强制指定轴范围,完全匹配参考图的轴区间
  • 确保x、y、z三个数组的长度完全一致(均为100),避免绘图时出现维度不匹配的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:30:47