2016-03-14 45 views
0

有沒有辦法將使用pyplot.Figure創建的pyplot數字轉換爲魔杖圖像?我曾嘗試使用以下無效:將pyplot數字轉換爲wand.image圖像

image_data = BytesIO() 
figure.savefig(image_data, format='png') 
image_data.seek(0) 
image = Image(file=image_data, resolution=250) 

這最終目標是將數字列表轉換爲長PNG。唯一的其他方法(這是醜陋的)是轉換爲PDF,然後連接頁面。

回答

0

我相信你在正確的軌道上。如果沒有看到這個數字,我會認爲這個問題與有關,它使用關鍵字with來保存C結構指針。

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') 
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