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生成完毕了,大概的样子。

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

- 抱怨完毕,其实就是对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的pyecharts、pandas和imgkit库将Excel数据转换为柱状图,并进一步将图表保存为PNG图片。过程中详细讲述了如何处理安装依赖、读取Excel数据、生成HTML图表以及将HTML转换为图片的步骤,同时提到了在转换大量图片时可能出现的问题及其解决方案。
5114

被折叠的 条评论
为什么被折叠?



