1、Matplotlib 三维绘图
尽管Matplotlib最初设计时只考虑了二维绘图,但是在后来的版本中,Matplotlib的二维显示器上构建了一些三维绘图实用程序,以提供一组三维数据可视化工具。通过导入Matplotlib包中包含的mplot3d工具包,可以启用三维图。
可以通过将关键字projection ='3d’传递给任何法线轴创建例程来创建三维轴。
示例代码:
import matplotlib.pyplot as plt
import numpy as np
import math
import seaborn as sns
from mpl_toolkits import mplot3d
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False
fig = plt.figure()
ax = plt.axes(projection='3d')
z = np.linspace(0, 1, 100)
x = z * np.sin(20 * z)
y = z * np.cos(20 * z)
ax.plot3D(x, y, z, 'gray')
ax.set_title('3D line plot')
plt.show()
执行上面示例代码,得到以下结果
现在可以绘制各种三维绘图类型。最基本的三维绘图是根据(x,y,z)三元组创建的3D线图。这可以使用ax.plot3D函数创建。
使用ax.scatter3D函数生成三维散点图。
示例代码
import matplotlib.pyplot as plt
import numpy as np
import math
import seaborn as sns
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
from mpl_toolkits import mplot3d
fig = plt.figure()
ax = plt.axes(projection='3d')
z = np.linspace(0, 1, 100)
x = z * np.sin(20 * z)
y = z * np.cos(20 * z)
ax.plot3D(x, y, z, 'gray')
ax.set_title('3D line plot')
plt.show()
执行上面示例代码,得到以下结果
2、Matplotlib 3D轮廓图
ax.contour3D()函数创建三维等高线图。它要求所有输入数据采用二维规则网格的形式,并在每个点评估Z数据。在这里,将展示三维正弦函数的三维等高线图。
示例代码
import matplotlib.pyplot as plt
import numpy as np
import math
import seaborn as sns
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
from mpl_toolkits import mplot3d
def f(x, y):
return np.sin(np.sqrt(x ** 2 + y ** 2))
x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.contour3D(X, Y, Z, 50, cmap='binary')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.set_title('3D contour')
plt.show()
执行上面示例代码,得到以下结果