Matplotlib 技巧速查

Matplotlib 技巧速查

参考:Matplotlib Cheat Sheet

1. 导入 Matplotlib

在使用 Matplotlib 之前,我们需要先导入相应的库:

import matplotlib.pyplot as plt

2. 绘制简单的折线图

下面是一个简单的折线图示例,展示了一条线在 x 轴和 y 轴上的值:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y)
plt.show()

Output:

Matplotlib 技巧速查

3. 绘制多条线

除了一条线之外,我们也可以绘制多个线在同一个图中:

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)
plt.plot(x, y2)
plt.show()

Output:

Matplotlib 技巧速查

4. 自定义线的样式

不同的线条可以使用不同的样式,比如颜色、线型、线条宽度等:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y, color='red', linestyle='--', linewidth=2)
plt.show()

Output:

Matplotlib 技巧速查

5. 添加标题和标签

我们可以为图像添加标题和标签,使得图像更加清晰和易于理解:

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:

Matplotlib 技巧速查

6. 绘制散点图

散点图可以展示数据的分布情况,下面是一个简单的散点图示例:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.scatter(x, y)
plt.show()

Output:

Matplotlib 技巧速查

7. 绘制柱状图

柱状图可以用来展示不同类别之间的比较情况,如下所示:

import matplotlib.pyplot as plt

x = ['A', 'B', 'C', 'D', 'E']
y = [10, 20, 30, 40, 50]

plt.bar(x, y)
plt.show()

Output:

Matplotlib 技巧速查

8. 添加图例

如果图中包含多个数据集,我们可以为每个数据集添加图例:

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:

Matplotlib 技巧速查

9. 修改坐标轴范围

有时候我们想要调整坐标轴的范围,可以使用 xlimylim 方法:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y)
plt.xlim(0, 10)
plt.ylim(0, 15)
plt.show()

Output:

Matplotlib 技巧速查

10. 添加网格线

网格线可以帮助我们更好地理解数据点的位置,可以通过添加 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:

Matplotlib 技巧速查

11. 自定义坐标轴标签

我们可以自定义坐标轴的标签,使得图像更具可读性:

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y)
plt.xticks([1, 2, 3, 4, 5], ['one', 'two', 'three', 'four', 'five'])
plt.show()

Output:

Matplotlib 技巧速查

12. 保存图像

如果我们想要保存生成的图像,可以使用 savefig 方法来保存:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y)
plt.savefig('plot.png')
plt.show()

Output:

Matplotlib 技巧速查

13. 绘制子图

有时候我们想要在同一个画布上绘制多个子图,可以使用 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(1, 2, 1)
plt.plot(x, y1)

plt.subplot(1, 2, 2)
plt.plot(x, y2)

plt.show()

Output:

Matplotlib 技巧速查

14. 添加注释

我们可以在图像上添加注释来帮助解释数据,如下所示:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y)
plt.annotate('Max Value', xy=(5, 11), xytext=(4, 12),
             arrowprops=dict(facecolor='black', shrink=0.05))
plt.show()

Output:

Matplotlib 技巧速查

15. 使用不同的图形

除了折线图和散点图外,我们还可以使用其他类型的图形如条形图和饼图:

import matplotlib.pyplot as plt

sizes = [20, 30, 40, 10]
labels = ['A', 'B', 'C', 'D']

plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.show()

Output:

Matplotlib 技巧速查

16. 添加颜色映射

有时候我们希望在图中应用颜色映射来突出显示数据的不同部分:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
colors = [0, 1, 2, 3, 4]

plt.scatter(x, y, c=colors, cmap='viridis')
plt.colorbar()
plt.show()

Output:

Matplotlib 技巧速查

17. 保存为 PDF

除了保存为图片外,我们还可以将图像保存为 PDF 格式:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y)
plt.savefig('plot.pdf')
plt.show()

Output:

Matplotlib 技巧速查

18. 绘制直方图

直方图可以用来展示数据的分布情况,如下所示:

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(1000)
plt.hist(data, bins=30)
plt.show()

Output:

Matplotlib 技巧速查

19. 添加背景色

我们可以为图像添加背景色,让图像更具吸引力和专业性:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y)
plt.gca().set_facecolor('lightgrey')
plt.show()

Output:

Matplotlib 技巧速查

20. 添加文本标注

除了使用注释外,我们还可以添加文本标注来说明数据的特点:

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, 'Max Value', fontsize=12, color='red')
plt.show()

Output:

Matplotlib 技巧速查

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程