使用plotly模块保存图片

目的

使用Python3的Plotly模块,实现对数据库数据的读取,然后形成Table表格,并通过钉钉机器人定时发送到钉钉群组。

 

难点

Plotly本身是通过html页面展示的,先要把图片保存下来需要安装一些其他的包;通过网上的无数文章都是错误的,弄了将近两天才把环境搞得,不得不感慨一下,下面就自己总结成文,飞快的就能搞定。

 

步骤

1、环境

CentOS Linux release 7.6.1810 (Core)

 

2、Python环境

1)安装pip与pip3

 

2)安装Python3

 

3、基本库安装psutil

pip3 install psutil requests

 

4、使用plotly模块必须得安装orca

python 生成图表 python 生成图片 表格_群组

wget https://github.com/plotly/orca/releases/download/v1.2.1/orca-1.2.1-x86_64.AppImage
chmod +x orca-1.2.1-x86_64.AppImage
 
# 绝对路径
ln -s /root/orca-1.2.1-x86_64.AppImage /usr/bin/orca

# 看orca命令是否可以显示正确,如果报依赖包的错误,可以看下一个步骤,是主要的一些依赖包
orca --help

python 生成图表 python 生成图片 表格_群组_02

 

5、orca安装相关得系统依赖包 

yum install fuse-libs-2.9.2-11.el7.x86_64
yum install gtk2-2.24.31-1.el7.x86_64
yum install desktop-file-utils 
yum install Xvfb
yum install xdg-utils-1.1.0-0.17.20120809git.el7.noarch

 

Tips:

这里报依赖包没找到的话,你又不知道安装什么样的依赖包,那就通过这个命令去获取 yum provides 

python 生成图表 python 生成图片 表格_ide_03

yum provides libfuse.so.2
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.heanet.ie
 * extras: ftp.heanet.ie
 * updates: ftp.heanet.ie
fuse-libs-2.9.2-11.el7.i686 : File System in Userspace (FUSE) libraries
Repo : base
Matched from:
Provides : libfuse.so.2

python 生成图表 python 生成图片 表格_python 生成图表_04

 

6、添加脚本executable.sh

orca 执行不报错后,执行脚本executable.sh,里面的文件路径为第4步下载的文件

#!/bin/bash
xvfb-run -a /root/orca-X.Y.Z-x86_64.AppImage "$@"

 

7、测试

python 生成图表 python 生成图片 表格_依赖包_05

import plotly.graph_objects as go
import plotly.io as pio


fig = go.Figure(data=[go.Table(header=dict(values=['A Scores', 'B Scores']),
                 cells=dict(values=[[100, 90, 80, 90], [95, 85, 75, 95]]))
                     ])

pio.write_image(fig, '1.png')

python 生成图表 python 生成图片 表格_python 生成图表_06

 

执行完这个脚本后,就会发现当前目录下有一个1.png,就是我们保存的图片,后续的话就可以通过钉钉的告警脚本把图片发送到钉钉群组里。

python 生成图表 python 生成图片 表格_ide_07

 

 

使用shell生成表格:

  可以根据makedown格式生成固定格式的表格文件,然后使用typora之类的工具打开,并复制到excel文件中