我想知道我是否可以通过smtplib发送一个matplotlib pyplot。我的意思是,在绘制这个数据框架之后:
In [3]: dfa
Out[3]:
day imps clicks
70 2013-09-09 90739468 74609
69 2013-09-08 90945581 72529
68 2013-09-07 91861855 70869
In [6]: dfa.plot()
Out[6]: <matplotlib.axes.AxesSubplot at 0x3f24da0>
我知道我可以看到情节使用
plt.show()
但对象本身存储在哪里呢?还是我误解了matplotlib的一些东西?有没有办法在python中将它转换成图片或html,以便我可以通过smtplib发送?
3条答案
按热度按时间odopli941#
也可以在内存中执行所有操作,将其保存到BytesIO缓冲区,然后将其馈送到有效负载:
wmomyfyw2#
可以使用
figure.savefig()
将打印保存到文件。一个将图输出到文件的示例:然后只需将图像附加到您的电子邮件(如recipe in this answer)。
ruarlubt3#
我不喜欢用SMTP和电子邮件库做这件事有多混乱,所以我决定自己解决这个问题,并创建了一个更好的发送电子邮件的库。您可以将Matplotlib图形作为附件或包含在HTML正文中,而无需任何努力:
库(希望)应该是所有你需要从一个电子邮件发件人。可以从PyPI安装:
文件:https://red-mail.readthedocs.io/en/latest/
源代码:https://github.com/Miksus/red-mail