0


Pyecharts快速入门

使用工具:

  • Pycharm
  • Python3.9
  • Pyecharts

pyecharts官网https://pyecharts.org/#/zh-cn/changelog

一、PyEcharts介绍

1.1、版本区分

  • V0.5x版本 - 不再进行维护。仅支持python2.7、3.4+
  • V1.0x版本 - 仅支持python3.6+

1.2、技术介绍

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

二、疫情数据可视化项目

2.1、了解数据

了解一个数据要从不同的维度来了解

例如疫情的数据,可以从以下几个方面来了解:

  • 维度

image-20220331104705393

  • 成品

image-20220331104755998

2.2、绘制单日境外输入和本土新增的图

分析:有一个总的数据,然后两个加起来属于总的,所以对于这种比例的,推荐饼图

对于占比的数据,推荐使用饼图,因为能更好的看清楚各种比例

image-20220331105052414

  • 成品
    image-20220331134237903

  • 【官方案例】Pie - Pie_base

#导包from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker    #Faker包里面有样例数据#链式调用
c =(#实例化一个饼图对象
    Pie()#添加数据.add("",[list(z)for z inzip(Faker.choose(), Faker.values())])#设置标题.set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例"))#设置标签.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))#网页渲染方式.render("pie_base.html"))#jupyter独有的#c.render_notebook()
  • 修改官方代码实现功能:
#导包from pyecharts import options as opts
from pyecharts.charts import Pie
# from pyecharts.faker import Faker

data =[['境外输入',10],['本土新增',9]]

c =(
    Pie().add(series_name="",data_pair=data).set_global_opts(title_opts=opts.TitleOpts(title="单日新增患者")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))#设置颜色.set_colors(['rgb(70, 133, 212)','rgb(186, 33, 16)']).render("./templates/index2.html"))

2.3、绘制一周内数据的新增情况

分析:数据量适中,每条数据中有三个类目

采用极坐标系图

image-20220331112741036

  • 成品
    image-20220331134308844

  • 【官网案例】Polar - Polar_angleaxis

from pyecharts import options as opts
from pyecharts.charts import Polar
from pyecharts.faker import Faker

c =(#实例化极坐标系对象
    Polar()#设置角轴每一部分的名称,还有类型.add_schema(angleaxis_opts=opts.AngleAxisOpts(data=Faker.week, type_="category"))#增加数据,设置类型,支持散点、柱状、还有其他类型,stark相同可以堆叠反之,如果不一样,会单独成列.add("A",[1,2,3,4,3,5,1], type_="bar", stack="stack0").add("B",[2,4,6,1,2,3,1], type_="bar", stack="stack0").add("C",[1,2,3,4,1,2,5], type_="bar", stack="stack0")#设置标题.set_global_opts(title_opts=opts.TitleOpts(title="Polar-AngleAxis"))#渲染方式.render("polar_angleaxis.html"))
  • 修改官方代码实现功能:
from pyecharts import options as opts
from pyecharts.charts import Polar
from pyecharts.faker import Faker

date =['12月25日','12月26日','12月27日','12月28日','12月29日','12月30日','12月31日']

c =(
    Polar().add_schema(angleaxis_opts=opts.AngleAxisOpts(data=date, type_="category")).add("境外输入",[12,10,15,12,17,16,10], type_="bar", stack="stack0").add("新增本土",[8,12,6,15,7,9,9], type_="bar", stack="stack0").add("新增无症状",[19,15,20,8,17,8,9], type_="bar", stack="stack0").set_global_opts(title_opts=opts.TitleOpts(title="本周新增患者情况")).render("./templates/index3.html"))

2.4、绘制本月新增病例情况

分析:数据量多,类目单一,期待这个数据的变化趋势

所以推荐折线图,能看出增长变化的趋势

image-20220331115301458

  • 成品
    image-20220331134338166

  • 【官方案例】Line - Line_base

import pyecharts.options as opts
from pyecharts.charts import Line
from pyecharts.faker import Faker

c =(
    Line()#设置x轴.add_xaxis(Faker.choose())#设置数据的名称以及数据.add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values())#设置标题.set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例"))#渲染网页方式.render("line_base.html"))
  • 修改代码:
import pyecharts.options as opts
from pyecharts.charts import Line
# from pyecharts.faker import Faker

data =[9,16,17,17,18,15,12,15,12,15,13,24,16,17,12,7,12,17,23,23,15,15,17,14,20,22,21,27,24,25,19]

c =(
    Line()#设置x轴.add_xaxis([i for i inrange(1,32)])#设置数据的名称以及数据.add_yaxis("新增患者人数", data).set_global_opts(title_opts=opts.TitleOpts(title="12月新增患者")).render("./templates/index4.html"))# print([i for i in range(1,32)])

2.5、绘制2020年各月新增人数

分析:数据量适中,类名单一

采用带时间轴的柱状图

image-20220331121505557

  • 成品
    image-20220331134415151

  • 【官方案例】

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker

c =(
    Bar()#设置x轴.add_xaxis(Faker.days_attrs)#设置数据标题,y轴数据.add_yaxis("商家A", Faker.days_values)#设置标题和时间轴.set_global_opts(
        title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-水平)"),
        datazoom_opts=opts.DataZoomOpts(),).render("bar_datazoom_slider.html"))
  • 修改代码
from pyecharts import options as opts
from pyecharts.charts import Bar
# from pyecharts.faker import Faker

data =[11719,68033,1730,1320,143,517,803,721,356,583,545,529]

c =(
    Bar()# 设置x轴.add_xaxis([str(i)+"月"for i inrange(1,13)])# 设置数据标题,y轴数据.add_yaxis("新增人数", data)# 设置标题和时间轴.set_global_opts(
        title_opts=opts.TitleOpts(title="2020年各月新增数据"),
        datazoom_opts=opts.DataZoomOpts(),).render("./templates/index5.html"))# print([str(i)+"月" for i in range(1,13)])

三、整合图表

3.1、步骤

  1. 创建一个Page对象,并运用DraggablePageLayout布局
  2. add()把各个图添加进来
  3. render()渲染成网页
  4. 调整网页布局,按Save Config保存配置
  5. 调用重新渲染方法save_resize_html('下载的网页',cfg_file='json文件',dest='新文件路径'),并把下载的文件导入进去,再确定新的存放位置

3.2、代码

  • 成品

自己用手拖吧~~ :)

  • 【官网案例】Page DraggablePageLayout 布局
#实例化Page对象
page = Page(layout=Page.DraggablePageLayout)#添加图表
page.add(bar_datazoom_slider(), line_markpoint(), pie_rosetype(), grid_mutil_yaxis())#保存渲染
page.render()
  • 修改代码
from pyecharts.charts import Page

#01_单日疫情增长.py#导包from pyecharts import options as opts
from pyecharts.charts import Pie

data =[['境外输入',10],['本土新增',9]]

pie =(
    Pie().add(series_name="",data_pair=data).set_global_opts(title_opts=opts.TitleOpts(title="单日新增患者")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))#设置颜色.set_colors(['rgb(70, 133, 212)','rgb(186, 33, 16)']))#02_周增长人数.pyfrom pyecharts import options as opts
from pyecharts.charts import Polar

date =['12月25日','12月26日','12月27日','12月28日','12月29日','12月30日','12月31日']

polar =(
    Polar().add_schema(angleaxis_opts=opts.AngleAxisOpts(data=date, type_="category")).add("境外输入",[12,10,15,12,17,16,10], type_="bar", stack="stack0").add("新增本土",[8,12,6,15,7,9,9], type_="bar", stack="stack0").add("新增无症状",[19,15,20,8,17,8,9], type_="bar", stack="stack0").set_global_opts(title_opts=opts.TitleOpts(title="本周新增患者情况")))#03_每月疫情新增人数.pyimport pyecharts.options as opts
from pyecharts.charts import Line

data =[9,16,17,17,18,15,12,15,12,15,13,24,16,17,12,7,12,17,23,23,15,15,17,14,20,22,21,27,24,25,19]

line =(
    Line()#设置x轴.add_xaxis([i for i inrange(1,32)])#设置数据的名称以及数据.add_yaxis("新增患者人数", data).set_global_opts(title_opts=opts.TitleOpts(title="12月新增患者")))#04_2020整年新增人数.pyfrom pyecharts import options as opts
from pyecharts.charts import Bar

data =[11719,68033,1730,1320,143,517,803,721,356,583,545,529]

bar =(
    Bar()# 设置x轴.add_xaxis([str(i)+"月"for i inrange(1,13)])# 设置数据标题,y轴数据.add_yaxis("新增人数", data)# 设置标题和时间轴.set_global_opts(
        title_opts=opts.TitleOpts(title="2020年各月新增数据"),
        datazoom_opts=opts.DataZoomOpts(),))#实例化Page对象
page = Page(layout=Page.DraggablePageLayout)#添加图表
page.add(pie,polar,line,bar)#保存图表
page.render("./end.html")

page.save_resize_html("end.html",cfg_file="./chart_config.json",dest="./output.html")
标签: python flask echarts

本文转载自: https://blog.csdn.net/xiaolin84250/article/details/123869943
版权归原作者 小霖大爆屎 所有, 如有侵权,请联系我们删除。

“Pyecharts快速入门”的评论:

还没有评论