工具集合
- 数据由python处理,所以首先需要安装python,官网下载即可。可以不用安装python的编辑器,自己用Notepad写就可以。
- 安装图表处理库pyecharts,命令是:pip install pyecharts。
- 在线环境不需要安装,离线环境需要安装的图表静态资源文件,下载地址
解压后是这样的,assets也是以后我们存放生成的html的位置,不然就不能正确解析。
- 图表操作语法规则链接
- 万事俱备,GOGOGO!!!
代码细节
- 代码前的说明:书写的python代码必须和assets文件夹在同一目录下,代码中必须包含如下两行,用于指明在离线状态下怎么解析生成的html文件。在之后的代码中也会说明。要使用某一种图表时,只需要把自己的数据替换掉area_key和area_val就行,当然你也可以自己定义新的数据获取函数,我这里只是规定了输入数据的格式和类型。
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "./assets/"
- 柱状图
from pyecharts.charts import Bar
from pyecharts.charts import Page
from pyecharts.faker import Collector
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "./assets/"
C = Collector()
@C.funcs
def bar_base() -> Bar:
#area_key area_val就是要处理的数据,为一个二维表,需要提前加工好,需要的时候替换就行
area_key = ['北京','上海','深圳','杭州','天津','广州']
area_val = [114,62,46,21,74,44]
c = (
Bar()
.add_xaxis(area_key)
.add_yaxis("公司数量", area_val)
)
return c
#这句语法不用管,意思就是把你要的所有图表一次性渲染出来。
Page().add(*[fn() for fn, _ in C.charts]).render()
柱状图效果:
- 地域分布图
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.charts import Geo, Page
from pyecharts.faker import Collector
from pyecharts.globals import CurrentConfig
from pyecharts.globals import ChartType, SymbolType
CurrentConfig.ONLINE_HOST = "./assets/"
C = Collector()
@C.funcs
def geo_base() -> Geo:
area_key = ['北京','上海','深圳','杭州','天津','广州']
area_val = [114,62,46,21,74,44]
c = (
Geo()
.add_schema(maptype="china")
.add("geo", [list(z) for z in zip(area_key, area_val)])
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(),
title_opts=opts.TitleOpts(title="Geo-基本示例"),
)
)
return c
@C.funcs
def geo_base1() -> Geo:
area_key = ['北京','上海','深圳','杭州','天津','广州']
area_val = [114,62,46,21,74,44]
c = (
Geo()
.add_schema(maptype="china")
.add("geo", [list(z) for z in zip(area_key, area_val)],
type_=ChartType.HEATMAP)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(),
title_opts=opts.TitleOpts(title="Geo-HeatMap"),
)
)
return c
Page().add(*[fn() for fn, _ in C.charts]).render()
地理分布图效果:还有多种效果可以配置。
- 折线图
from pyecharts.charts import Line
from pyecharts.charts import Page
from pyecharts.faker import Collector
from pyecharts.globals import CurrentConfig
from pyecharts import options as opts
CurrentConfig.ONLINE_HOST = "./assets/"
C = Collector()
@C.funcs
def line_base() -> Line:
area_key = ['1月','2月','3月','4月','5月','6月']
area_val_1 = [114,62,46,21,74,44]
area_val_2 = [89,56,77,34,66,88]
c = (
Line()
.add_xaxis(area_key)
.add_yaxis("商家A", area_val_1)
.add_yaxis("商家B", area_val_2)
.set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例"))
)
return c
Page().add(*[fn() for fn, _ in C.charts]).render()
折线图效果:
- 待补充
路径配置
上述任意一段代码成功运行后,都会在assets同目录下生成一个名为render.html文件,如果这个文件已经存在,则会覆盖,当然你也可以把所有的图像生成到同一个html文件里,就像地域分布图中的那样。
重要的是我们在使用render.html文件时需要保持在与assets文件夹在同一目录,且代码中的语句CurrentConfig.ONLINE_HOST = "./assets/"不能变。同时如果要用作PPT中演示,需要把PPT拷贝到和render.html在同一目录下,并且要带着所有的资源文件,大约有15MB。所以最后的目录如下: