Matplotlib Scatter3D

Matplotlib Scatter3D

Scatter3D是Matplotlib中的一个3D散点图函数,可以用于绘制向量和带有XYZ轴的数据点,尤其适用于探索空间数据。Scatter3D可以通过设置xlim,ylim和zlim来限制数据范围。其中对于zlim参数未设置,可以使用caxis函数来获取z轴限制范围。

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

# 创建画布和3D坐标系
fig = plt.figure(figsize=(10, 6))
ax = Axes3D(fig)

# 数据点
x = np.random.uniform(-5, 5, size=100)
y = np.random.uniform(-5, 5, size=100)
z = np.random.uniform(-5, 5, size=100)

# 绘制散点图
scatter = ax.scatter3D(x, y, z, s=50, alpha=0.6, depthshade=True)

# 设置坐标轴标签和标题
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.title('Matplotlib 3D Scatter Plot')

# 设置x、y、z轴的范围
ax.set_xlim(-5, 5)
ax.set_ylim(-5, 5)
ax.set_zlim(-5, 5)

# 显示图像
plt.show()

阅读更多:Matplotlib 教程

Matplotlib Scatter3D中设置zlim

对于某些特殊的数据分析,需要在散点图的z方向上设置极限值,这时我们可以使用set_zlim()函数设置z轴限制范围。例如,我们绘制一个高斯分布的三维散点图,且限制z轴在 -2 到 2 的范围内。

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

# 高斯分布点
mean = [0, 0, 0]
cov = [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
x, y, z = np.random.multivariate_normal(mean, cov, 5000).T

fig = plt.figure(figsize=(10, 6))
ax = Axes3D(fig)

# 绘制散点图
scatter = ax.scatter3D(x, y, z, s=50, alpha=0.6, depthshade=True)

# 设置坐标轴标签和标题
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.title('Gaussian Distribution Scatter Plot')

# 将z轴限制在[-2, 2]之间
ax.set_zlim(-2, 2)

# 显示图像
plt.show()

设置zlim范围后,使用caxis函数获取范围

当在Scatter3D中设置了zlim范围后,那么我们可以通过caxis()函数获取z轴的限制范围。例如,下面的代码绘制了一个 x 和 y 轴满足高斯分布的 3D scatter3D,但是通过set_zlim方法将z轴的范围设置为3到5之间。我们可以用caxis()函数获取所设置的z轴范围。

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

# 样本点
mean = [0, 0]
cov = [[1, 0], [0, 1]]
x, y = np.random.multivariate_normal(mean, cov, 5000).T
z = np.random.uniform(3, 5, size=5000)

fig = plt.figure(figsize=(10, 6))
ax = Axes3D(fig)

# 绘制散点图
scatter = ax.scatter3D(x, y, z, s=50, alpha=0.6, depthshade=True)

# 设置坐标轴标签和标题
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.title('Gaussian Distribution Scatter Plot')

# 将z轴限制在[3, 5]之间
ax.set_zlim(3, 5)

# 使用caxis函数获取所设置的z轴范围
zmin, zmax = scatter.axes.caxis._min, scatter.axes.caxis._max
print("z轴限制范围:[{}, {}]".format(zmin, zmax))

# 显示图像
plt.show()

总结

Scatter3D函数是Matplotlib中的一个非常重要的函数,它可以用于绘制3D散点图。同时,通过设置set_zlim()函数可以限制z轴的范围。在设置z轴范围后,我们可以使用caxis()函数获取设置的z轴限制范围。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程