欢迎访问宙启技术站
智能推送

如何使用Python的Matplotlib库绘制二维和三维图表?

发布时间:2023-06-15 12:15:10

Matplotlib是Python中最流行的数据可视化库之一,它提供了各种绘图选项来可视化数据。本文将教您使用Matplotlib库来绘制二维和三维图表。

绘制二维图表

在开始绘制 2D 图表之前,我们需要安装 Matplotlib 库。可以使用 pip 安装:

pip install matplotlib

安装后,我们需要导入 Matplotlib 库,然后绘制图表。例如,我们可以绘制简单的线图、柱形图和散点图。

1. 绘制线图

要绘制简单的线图,请使用 plot 函数。plot 函数接受两个列表作为参数,一个是x轴上的数据和另一个是y轴上的数据。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 3, 1, 5]
plt.plot(x, y)
plt.show()

运行后,您将得到以下输出:

![示例图1](https://i.imgur.com/tp9Vxpi.png)

2. 绘制柱形图

要绘制柱形图,请使用 bar 函数。bar 函数接受两个列表作为参数,一个是x轴上的数据和另一个是y轴上的数据。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 3, 1, 5]
plt.bar(x, y)
plt.show()

运行后,您将得到以下输出:

![示例图2](https://i.imgur.com/JkoJYzZ.png)

3. 绘制散点图

要绘制散点图,请使用 scatter 函数。scatter 函数接受两个列表作为参数,一个是x轴上的数据和另一个是y轴上的数据。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 3, 1, 5]
plt.scatter(x, y)
plt.show()

运行后,您将得到以下输出:

![示例图3](https://i.imgur.com/cImvuiD.png)

绘制三维图表

Matplotlib还可以用于绘制 3D 图表。首先,我们需要安装 mpl_toolkits 。使用 pip install mpl_toolkits来安装。

在开始绘制 3D 图表之前,我们需要导入 mpl_toolkits 库中的mplot3d,然后绘制图表。例如,我们可以绘制简单的 3D 直线、3D 散点图和 3D 曲面图。

1. 绘制 3D 直线

首先绘制一个 3D 直线。要绘制 3D 图表,请创建一个 3D Axes 对象。这可以通过在正常 Axes 对象上调用 .add_subplot('111',projection ='3d')来完成。然后,您可以使用 plot 函数绘制 3D 直线。

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

fig = plt.figure()
ax = plt.axes(projection='3d')

# Creating dataset
z = np.linspace(0, 1, 100)
x = z * np.sin(30 * z)
y = z * np.cos(30 * z)

# Creating plot
ax.plot3D(x, y, z, 'red')
ax.set_title('3d Line plot')

# show plot
plt.show()

运行后,您将得到以下输出:

![示例图4](https://i.imgur.com/ydL3Hx0.png)

2. 绘制 3D 散点图

要绘制 3D 散点图进行与 2D 散点图相似的步骤,所不同的是,您需要将函数 .scatter3D()用于 3D 散点图。

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

fig = plt.figure()
ax = plt.axes(projection='3d')

# Creating dataset
z = 100*np.random.rand(100)
x = np.sin(z)
y = np.cos(z)

# Creating plot
ax.scatter3D(x, y, z, color="blue")
ax.set_title('3D Scatter plot')

# show plot
plt.show()

运行后,您将得到以下输出:

![示例图5](https://i.imgur.com/UMuOCLa.png)

3. 绘制 3D 曲面图

要绘制 3D 曲面图进行与 2D 曲面图相似的步骤,所不同的是,您需要将函数 .plot_surface()用于 3D 曲面图。.plot_surface()函数接受三个网格状 Numpy 数组 x、y、z 作为输入,这些数组定义了一个波浪形表面。可以使用参数 cmap 显示颜色。


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

fig = plt.figure()
ax = plt.axes(projection='3d')

# Creating dataset
x = np.outer(np.linspace(-2, 2, 30), np.ones(30))
y = x.copy().T
z = np.sin(x ** 2 + y ** 2)

# Creating plot
ax.plot_surface(x, y, z, cmap='viridis')
ax.set_title('3d Surface plot')

# show plot
plt.show()

运行后,您将得到以下输出:

![示例图6](https://i.imgur.com/TlOWk59.png)

总之,Matplotlib 是一个功能强大的库,用于生成 2D 和 3D 图表。可以使用 plot、bar、scatter、plot_surface 等函数来创建不同类型的图表。Matplotlib 还支持许多高级图形选项,例如 subplot、title、label、grid、tick 等,这些选项都可以让用户创建更多有趣的可视化图表。