ITPub博客

首页 > 应用开发 > > matplotlib 画图直接写入excel

matplotlib 画图直接写入excel

作者:babyyellow 时间:2019-07-30 17:55:35 0 删除 编辑

最近瞎写一点东西玩玩. 


用 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博客 ” ,链接:https://blog.itpub.net/133735/viewspace-3124269/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
oracle MySQL Postgresql 专职数据库dba。 系统架构师。 mysql 官方认知dba 。 15年专职dba 经验。 潜意识沟通实证者 心理咨询师。 禅修布道者, 禅修指导员。 禅定实证者。

注册时间:2010-12-02

  • 博文量
    367
  • 访问量
    1908642