如何使用 Python Pillow 直接显示 Matplotlib 生成的图片(不生成中间文件)?

如何使用 python pillow 直接显示 matplotlib 生成的图片(不生成中间文件)?

如何在 python pillow 中显示 matplotlib 生成的图片(无需生成中间文件)

matplotlib 图表处理库中,我们可以使用 savefig() 函数将绘制的图表保存为图像文件,例如 png、jpg 等。然而,有时我们可能需要将图像直接显示在屏幕上,而无需生成中间文件。

使用 io.bytesio

python pillow 提供了一个 io.bytesio 类,它允许我们模拟一个文件对象,该对象实际存储在内存中。通过使用 bytesio 对象,我们可以将 matplotlib 图形绘制到内存中,然后将其传递给 pillow 的 image 对象以进行显示。

示例代码:

import matplotlib.pyplot as plt
import io
from PIL import Image

# 创建 Matplotlib 图表
plt.plot([1, 2, 3, 4, 5], [2, 4, 6, 8, 10])

# 将图表绘制到内存中
buf = io.BytesIO()
plt.savefig(buf, format='png')

# 将内存中的图像加载到 Pillow Image 对象
image = Image.open(buf)

# 显示图像
image.show()

通过使用 bytesio 对象,我们可以直接在屏幕上显示 matplotlib 图表,而无需生成任何中间文件。这种方法在诸如 gui 应用或交互式笔记本环境等场景中非常有用,在那里我们希望动态显示更新的图表。

以上就是如何使用 Python Pillow 直接显示 Matplotlib 生成的图片(不生成中间文件)?的详细内容,更多请关注其它相关文章!