可视化绘制html,Python3.7 通过html绘制数据可视化图表

背景:生成数据分析报告时,需要后期自动生成统计图,插入报告中。但其他几个可视化工具没有合适的图表,查询相关资料后,发现一个网页可以生成所需图表。

目标:内网环境,将生成的html转化成图片,并自动插入报告中。

1、所需图表

报告中需要插入一个类金字塔形的柱状图,如下所示:

88795d451ede

所需图片

找了一下echarts,seaborn中都没有需要的样式,就很烦。

无意中发现,AntV G2中的这个图貌似可以使用的样子,它长这样:

88795d451ede

AntV G2

如果只是单次使用,直接改数据截图就可以用了。但是本次报告需要定期更新,所以需要自动化导入数据并自动截图。

2、内网环境打开html

由于本次是在内网环境运行的,所有先复制html文件在内网打开,结果是空白网页。这是由于网页内部JS未能成功渲染。

打开html文件,找到js访问请求地址,如下所示:

然后复制地址,下载这两个js文件,将文件与此html放入同一路径下,将上述代码修改为

然后在内网本地打开,就可以正常显示了。

3、修改插入数据

插入数据就很简单了,直接按照统计逻辑获取数据组,根据html上本身的要求转化成json或者数组。

88795d451ede

数据样式

要主要的是其中颜色的替换和数据显示的形式。

4、html转化成pdf

安装使用webdriver,输入本地html路径,PDF输出路径,就可以将网页转化成图片了。

import webdriver

def Html_to_png (url , save_fn ):

'''

将html文件转化为png

'''

option = webdriver.ChromeOptions()

option.add_argument('--headless')

option.add_argument('--disable-gpu')

option.add_argument("--window-size=1920,1080")

option.add_argument("--hide-scrollbars")

driver = webdriver.Chrome(chrome_options=option)

driver.get(url)

print(driver.title)

88795d451ede

最终成图效果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值