python pyplot画图y=x的平方_matplotlib.pyplot画图 图片的二进制流的获取方法

本文介绍了如何使用matplotlib.pyplot画图并获取图片的二进制数据流。通过BytesIO和canvas.print_png,或者print_to_buffer结合PIL库转换为PNG图像,将图像保存到文件或转换为数组。
摘要由CSDN通过智能技术生成

有些时候,我们需要画图后的二进制数据流,matplotlib没有提供相关的api,通过源码查看与百度,得到下面此方法

import matplotlib.pyplot as plt

import numpy as np

import io

x=np.arange(10)

y=x

#plt.plot(x,y)

#canvas = plt.get_current_fig_manager().canvas

#canvas.draw()

fig=plt.figure()

plt.plot(x,y)

canvas=fig.canvas

#上面这段代码和上面注释掉的代码效果一样

#方法1

buffer = io.BytesIO()

canvas.print_png(buffer)

data=buffer.getvalue()

buffer.close()

#方法2

buf, size = canvas.print_to_buffer()

image = Image.frombuffer('RGBA', size, buf, 'raw', 'RGBA', 0, 1)

buffer=io.BytesIO()

image.save(buffer,'PNG')

data=buffer.getvalue()

buffer.close()

with open('hhh.png',mode='wb') as f:

f.w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值