Matplotlib 绘图添加背景图
在绘制图表的过程中,我们经常需要在图表上加上一些背景图或者水印。在 Matplotlib 中,我们也可以很容易地完成这些需求。本文将介绍如何在 Matplotlib 绘图中添加背景图。
阅读更多:Matplotlib 教程
添加单一图片背景
我们可以使用 Matplotlib 的 imread()
函数读取一个图片文件。读取图片后,我们可以通过 imshow()
函数显示这个图片背景,并且在显示时可以设置图表的大小和位置。在代码中,我们可以这样实现:
import matplotlib.pyplot as plt
import numpy as np
# 读取图片
img = plt.imread('background.png')
# 设置绘图对象
fig, ax = plt.subplots(figsize=(10, 6))
# 在绘图对象上添加图片
ax.imshow(img, extent=[0, 10, 0, 6])
在上述代码中,我们首先读取了名为 background.png
的背景图片。我们使用了 subplots()
函数创建了一个绘图对象,同时我们调节了这个绘图对象的大小。然后,我们使用 imshow()
函数在这个绘图对象上添加上了背景图片,并使用 extent
属性设置这个图片在图表中的位置大小。
这时,我们就可以在此基础上继续绘制我们所需要的内容。例如,我们可以添加一些散点图:
x = np.random.rand(50)
y = np.random.rand(50)
color = np.random.rand(50)
size = np.random.randint(50, 300, size=50)
# 绘制散点图
ax.scatter(x, y, s=size, c=color)
在上面的代码中,我们定义了一些随机数来绘制散点图,并通过 scatter()
函数将其绘制出来。
添加多张图片背景
如果我们需要在图表上添加多张背景图片,同样可以使用 imshow()
函数来实现。我们只需要读取多张图片,然后在绘制图表时循环添加就可以了。例如,在下面的代码中,我们读取了四张背景图片,并在图表中按照相应的位置添加了这四张背景图片:
# 读取多张图片
back1 = plt.imread('1.jpg')
back2 = plt.imread('2.jpg')
back3 = plt.imread('3.jpg')
back4 = plt.imread('4.jpg')
# 设置绘图对象
fig, ax = plt.subplots(figsize=(10, 6))
# 在绘图对象上添加图片
ax.imshow(back1, extent=[0, 6, 0, 4])
ax.imshow(back2, extent=[6, 10, 2, 6])
ax.imshow(back3, extent=[5, 8, 0, 2])
ax.imshow(back4, extent=[0, 5, 4, 6])
总结
Matplotlib 是一款非常实用的绘图工具,可以用来制作各种各样的图表。在本文中,我们介绍了如何在 Matplotlib 绘图中添加背景图,同时也展示了添加单一图片和多张图片背景的实现方法。这些技巧能够让我们更好的展示数据,让图表更加美观大方,提升数据展示的效果。