Matplotlib 如何在Axes3D类中去掉坐标轴
在本文中,我们将介绍如何在使用Matplotlib库中的Axes3D类进行3D可视化时,去掉坐标轴。
首先,我们来看一个简单的示例代码:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)
ax.scatter(x, y, z)
plt.show()
运行上面的代码,我们可以得到一个3D散点图
可以看到,图中有三个坐标轴,分别表示x、y、z轴,但是在一些情况下,我们可能需要去掉这些坐标轴,以便突出展示数据,该如何实现呢?下面我们分别介绍两种方法:
阅读更多:Matplotlib 教程
方法1: 使用axis属性
Axes3D类提供了一个axis属性,可以控制坐标轴的显示与否。这个属性是一个长度为3的元组,每个元素都控制相应坐标轴的显示情况。若为True,则显示相应坐标轴,否则不显示。
我们可以将axis属性全部设置为False,即可去掉所有坐标轴,示例代码如下:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)
ax.scatter(x, y, z)
ax.axis('off') # 关闭坐标轴显示
plt.show()
运行上面的代码,我们可以得到一个没有坐标轴的3D散点图
方法2: 使用set_axis_off()方法
除了使用axis属性外,Axes3D类还提供了一个set_axis_off()方法,可以直接关闭所有坐标轴的显示。示例代码如下:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)
ax.scatter(x, y, z)
ax.set_axis_off() # 关闭坐标轴
plt.show()
运行上面的代码,我们也可以得到一个没有坐标轴的3D散点图
总结
通过使用axis属性或set_axis_off()方法,我们可以很方便地在Axes3D类中去掉坐标轴,从而突出展示数据。当然,我们也可以根据实际需要去掉部分坐标轴,只保留部分坐标轴。Matplotlib的Axes3D类还提供了许多其他属性和方法,如设置坐标轴标签、设置图例等功能,读者可以根据实际需要进行了解和使用。
极客笔记