将matplotlib画的图拷贝到剪贴板
matplotlib画完的图没有copy的功能,于是组合了网上找到的几个函数,执行之后将figure中的图复制到剪贴板。
import matplotlib.pyplot as plt
from cStringIO import StringIO
import win32clipboard
from PIL import Image
def send_to_clipboard(clip_type, data):
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(clip_type, data)
win32clipboard.CloseClipboard()
def save_figure(f, file, w, h):
if not f:
f = plt.gcf()
dpi = f.get_dpi()
f.set_figwidth(w / dpi)
f.set_figheight(h /dpi)
f.savefig(file)
def copy_figure(w=600, h=400, fig=None):
file = StringIO()
save_figure(fig, file, w, h)
file.seek(0)
image = Image.open(file)
output = StringIO()
image.convert("RGB").save(output, "BMP")
data = output.getvalue()[14:]
output.close()
send_to_clipboard(win32clipboard.CF_DIB, data)

0 条评论:
发表评论