有没有办法将用pyplot.Figure
创建的pyplot数字转换为魔杖图像?我尝试使用以下内容无济于事:
image_data = BytesIO()
figure.savefig(image_data, format='png')
image_data.seek(0)
image = Image(file=image_data, resolution=250)
最终目标是将数字列表转换为长png。唯一的另一种方法(丑陋)是转换为pdf然后连接页面。
答案 0 :(得分:0)
我相信你走在正确的轨道上。在没有看到图的情况下,我认为该问题与使用with
关键字保存C结构指针的wand有关。
image_data = BytesIO()
figure.savefig(image_data, dpi=250, format='png')
image_data.seek(0)
with Image(file=image_data) as img:
# ... do work
img.save(filename='/tmp/out.png')
答案 1 :(得分:0)
我试图找出如何做同样的事情。我走了一个兔子洞,有点想我还需要使用PIL(Pillow)来完成这项任务。在前一个答案的帮助下,我能够提出一个完整的例子:
import matplotlib
from io import BytesIO
import numpy
import matplotlib.pyplot as plt
from wand.display import display
from wand.image import Image
plt.plot([1,5,3,2])
plt.ylabel('y axis numbers')
plt.xlabel('x axis numbers')
image_data = BytesIO() #Create empty in-memory file
plt.savefig(image_data, format='png') #Save pyplot figure to in-memory file
image_data.seek(0) #Move stream position back to beginning of file
img = Image(file=image_data) #Create wand.image
display(img) #Use wand to display the img