Matplotlib示例
Matplotlib是一个非常流行的绘图库,用于创建各种类型的图表和图形。在本文中,我们将讨论一些常见的Matplotlib用法和示例代码。我们将演示如何绘制各种类型的图表,包括线图、散点图、柱状图、饼图等。让我们开始吧!
1. 安装Matplotlib
在介绍具体的示例代码之前,首先需要确保Matplotlib已经安装在您的系统中。您可以使用以下命令来安装Matplotlib:
pip install matplotlib
2. 绘制简单的线图
下面是一个简单的Matplotlib示例代码,用于绘制一条简单的线图:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制线图
plt.plot(x, y)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一条简单的线图,横轴对应x的值,纵轴对应y的值。
3. 绘制散点图
接下来,我们将演示如何绘制一个散点图:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制散点图
plt.scatter(x, y)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一张散点图,显示了x和y之间的关系。
4. 绘制柱状图
下面是一个示例代码,用于绘制柱状图:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制柱状图
plt.bar(x, y)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一张柱状图,每个柱子的高度对应y的值。
5. 绘制饼图
接下来,我们将演示如何绘制一个饼图:
import matplotlib.pyplot as plt
# 创建数据
sizes = [20, 30, 40, 10]
labels = ['Apple', 'Banana', 'Orange', 'Grape']
# 绘制饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一个饼图,显示了不同水果的比例。
6. 设置图表标题和标签
您可以使用plt.title()
方法来设置图表的标题,使用plt.xlabel()
和plt.ylabel()
方法来设置横纵轴的标签。下面是一个示例代码:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制线图
plt.plot(x, y)
# 设置标题和标签
plt.title('Example Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一条带有标题和标签的线图。
7. 设置图表样式
Matplotlib提供了许多不同的样式选项,您可以使用plt.style.use()
方法来设置图表的样式。下面是一个示例代码:
import matplotlib.pyplot as plt
# 设置图表样式为ggplot
plt.style.use('ggplot')
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制线图
plt.plot(x, y)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一条线图,使用了ggplot样式。
8. 设置图例
您可以使用plt.legend()
方法来添加图例,用以展示每条线对应的含义。下面是一个示例代码:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 9, 16, 25]
# 绘制线图
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
# 添加图例
plt.legend()
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一条包含两条线的线图,并显示了相应的图例。
9. 设置坐标轴范围
您可以使用plt.xlim()
和plt.ylim()
方法来设置横纵轴的范围。下面是一个示例代码:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制线图
plt.plot(x, y)
# 设置横轴范围为1-6,纵轴范围为0-15
plt.xlim(1, 6)
plt.ylim(0, 15)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一条线图,横轴范围为1-6,纵轴范围为0-15。
10. 添加网格线
您可以使用plt.grid()
方法来添加网格线。下面是一个示例代码:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制线图
plt.plot(x, y)
# 添加网格线
plt.grid(True)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一条线图,并添加了网格线。
11. 绘制多个图表
您可以使用plt.subplot()
方法来在同一张图表中绘制多个子图。下面是一个示例代码:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 9, 16, 25]
# 绘制第一个子图
plt.subplot(2, 1, 1)
plt.plot(x, y1)
# 绘制第二个子图
plt.subplot(2, 1, 2)
plt.plot(x, y2)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一张包含两个子图的图表。
12.继续输出:
12. 自定义线条样式和颜色
您可以使用不同的线条样式和颜色来区分不同的线条。下面是一个示例代码:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 9, 16, 25]
# 绘制线图,并设置线条样式和颜色
plt.plot(x, y1, linestyle='--', color='b', label='Line 1')
plt.plot(x, y2, linestyle='-.', color='r', label='Line 2')
# 添加图例
plt.legend()
# 显示图表
plt.show()
Output:
运行上述代码,您将看到两条线,分别使用了不同的线条样式和颜色。
13. 添加文本注释
您可以使用plt.text()
方法在图表中添加文本注释。下面是一个示例代码:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制线图
plt.plot(x, y)
# 添加文本注释
plt.text(3, 5, 'Point', fontsize=12, color='r')
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一条线图,并在指定位置添加了文本注释。
14. 绘制3D图
Matplotlib也支持绘制3D图,您可以使用mpl_toolkits.mplot3d
模块来创建3D图表。下面是一个示例代码:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
# 创建3D图表
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 生成数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 绘制3D曲面图
ax.plot_surface(X, Y, Z)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一个3D曲面图。
15. 绘制动态图
您可以使用Matplotlib实现动态图的绘制,在每次更新数据后重新绘制图表。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.arange(0, 10, 0.1)
y = np.sin(x)
# 创建图表
fig, ax = plt.subplots()
line, = ax.plot(x, y)
# 更新数据并重新绘制
for i in range(100):
y = np.sin(x + i * 0.1)
line.set_ydata(y)
plt.draw()
plt.pause(0.1)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一个动态图,显示了sin函数随时间变化的曲线。
16. 绘制气泡图
气泡图是一种用气泡的半径大小来显示数据的图表。下面是一个示例代码:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
sizes = [20, 50, 80, 100, 150]
# 绘制气泡图
plt.scatter(x, y, s=sizes)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一个气泡图,气泡的大小根据sizes中的数据而定。
17. 绘制直方图
直方图用于显示数据的分布情况,可以使用plt.hist()
方法绘制。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 创建随机数据
data = np.random.randn(1000)
# 绘制直方图
plt.hist(data, bins=30)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一个直方图,显示了随机数据的分布情况。
18. 绘制等高线图
等高线图用于显示二维数据的分布情况,可以使用plt.contour()
方法绘制。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 生成二维数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 绘制等高线图
plt.contour(X, Y, Z)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一个等高线图,显示了二维数据的分布情况。
19. 自定义图表尺寸和分辨率
您可以使用plt.figure()
方法设置图表的尺寸和分辨率。下面是一个示例代码:
import matplotlib.pyplot as plt
# 创建图表,并设置尺寸和分辨率
plt.figure(figsize=(6, 4), dpi=100)
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制线图
plt.plot(x, y)
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一条线图,图表的尺寸为6×4,分辨率为100。
20. 保存图表为图片文件
最后,您可以使用plt.savefig()
方法将图表保存为图片文件。下面是一个示例代码:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制线图
plt.plot(x, y)
# 保存图表为图片文件
plt.savefig('example_plot.png')
# 显示图表
plt.show()
Output:
运行上述代码,您将看到一条线图,并且图表将保存为名为example_plot.png
的图片文件。