matplotlib 畫圖直接寫入excel

babyyellow發表於2019-07-30

最近瞎寫一點東西玩玩. 


用 matpyplot.lib  生成的圖片, 想直接寫到 excel 裡面. 


結果 沒有摸上門道去,  浪費了一點時間.  


就順便 把文件看了下.  


就順便做了幾個例子.  希望可以幫到你. 


import  os,  sys

from matplotlib  import  pyplot  as plt 

import  pandas as pd 

from io  import BytesIO 

import  xlswriter  as xls 




>>> df3 = pd.DataFrame({'X': ['A', 'B', 'A', 'B'], 'Y': [1, 4, 3, 2]})

>>> df3

   X  Y

0  A  1

1  B  4

2  A  3

3  B  2



df3.plot()

plt.show()


  


plt.savefig('abc.png') 


book=xls.Workbook('abc.xls')

sheet=book.add_worksheet('demo')

sheet.insert_image('D5', 'abc.png') 

book.close() 




圖片寫到Excel 裡面了. 



當然了.  這裡 就

insert_image( row,column, imagfile, {xargs}) 


字典  xargs  

{
    'x_offset':        0,
    'y_offset':        0,
    'x_scale':         1,
    'y_scale':         1,
    'object_position': 2,
    'image_data':      None,
    'url':             None,
    'tip':             None,}

這裡有個  image_data  這個是一個buffer .  或者 說是一個byteio 的物件. 


這樣就不用先寫磁碟 再從磁碟裡 讀資料寫excel 了. 



imagdata=BytesIO()

plt.savefig(imagedata) 


book=xls.Workbook('abc.xls')

sheet=book.add_worksheet('demo')

sheet.insert_image(10,5,'',{"image_data": imagedata}) 

book.close() 


效果是一樣的.  


其實這樣就  可以完美的解決問題了. 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-2652271/,如需轉載,請註明出處,否則將追究法律責任。

相關文章