Matplotlibのグラフを直接LINE Notifyに送信する


やりたいこと

Matplotlibで生成したグラフを、ファイルに保存せずに直接LINE Notifyに送信したい。

コード


import numpy as np
import numpy.random as random
import matplotlib.pyplot as plt
import io
import requests

#適当にグラフを作る
random.seed(10)
x = np.arange(1, 101, 1)
y = random.randn(100)
y.sort()
plt.plot(x, y)

#メモリに画像を保存
buf = io.BytesIO()
plt.savefig(buf, format='png')
#グラフを表示しない
plt.close()

line_notify_token = 'LINE Notifyのトークン'
line_notify_api = 'https://notify-api.line.me/api/notify'
headers = {'Authorization': f'Bearer {line_notify_token}'}
data = {'message': 'matplotlib test'}
files = {'imageFile': buf.getvalue()}
result = requests.post(line_notify_api, headers = headers, data = data, files = files)

結果

参考文献