python根据excel数据生成柱状图并导出成图片格式

python将excel的数据生成柱状图并导出成图片

  • 由于python初学,所以分为两个步骤来进行,1.首先把excel的图表导出成.html文件。2.然后把html文件转换成png文件。其中使用的工具包为pyecharts(绘图),pandas(数据访问),imgkit(网页转图片)。

  • 快乐的一天从导包开始,首先使用了pycharm的file–>settings导包,然后快乐地头皮发麻地安装失败了,于是还是选择了去下包来自己安装。

  • pip install *之后就成功了,于是就开始造车之旅。首先导入你日思夜想的三方包:

from pyecharts import options as opts
from pyecharts.charts import Bar
import pandas as pd
  • 导包之后,要拿到excel数据,肯定得先打开你的excel表获取数据:
data = pd.read_excel(" ",sheet_name="Sheet1")
  • 参数1是放入你的excel表的路径,参数2肯定是你要打开第几个表。
while(i<(data.shape[0]+1)):
 c = (

    Bar(init_opts=opts.InitOpts(width="800px",height="400px"))
    .add_xaxis(data.编号[:i].tolist()[i-1:])
    .add_yaxis("PH",data.PH[:i].tolist()[i-1:])
    ...
    .set_global_opts(title_opts=opts.TitleOpts(title=data.编号[:i][i-1]+"的数据",pos_left="left"))
    .render("html/柱状图"+str(i)+".html")
 )
 i = i + 1
  • 循环遍历excel表的行,然后根据行数决定生成多少个html文件,由于要求是一个png文件上就一个柱状图,于是用html与png一一对应放置。

  • 于是就坐等html生成完毕了,大概的样子。
    python根据excel数据生成柱状图并导出成图片格式_第1张图片

  • 看起来不错,接下来就是用html转成png了,如果能用canvas画布造车还是用原生canvas造,用三方包(比如我这就是用imgkit)造车总有些奇奇怪怪的东西,比如我这个就是运行到一半,它不干活了,转个1000来张图片就中途罢工了。陷入沉思。

python根据excel数据生成柱状图并导出成图片格式_第2张图片

  • 抱怨完毕,其实就是对imgkit的配置config,这里需要安装一个wkhtmltoimage,其实它在wkhtmltopdf里,你得去https://wkhtmltopdf.org/downloads.html下,然后再调用它帮你完成转换工作,其实思路就是用这个玩意把你造的轮子(html)变成你要的车子(png),于是就是需要获取到轮子(html)的路径然后输出车子(png)的路径,话不多说,上菜。
cfg = imgkit.config(wkhtmltoimage = "你wkhtmltoimage放置的位置")

f_list = os.listdir("你html放置的目录")

for file in f_list: 
    #你要找的文件的后缀名
    file_name = file[:file.find(".html")]
    with open("打开文件的目录"+file,encoding="utf-8") as f:
        imgkit.from_file(f,"输出文件的目录"+file_name+".png",config=cfg)
        f.seek(0,0)

成了,然后这车子开一半就罢工了。

你可能感兴趣的:(python,excel,数据可视化)