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 in zip(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 in range(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 in range(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_周增长人数.py
from 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_每月疫情新增人数.py
import 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 in range(1,32)])
    #设置数据的名称以及数据
    .add_yaxis("新增患者人数", data)

    .set_global_opts(title_opts=opts.TitleOpts(title="12月新增患者"))
)

#04_2020整年新增人数.py
from 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 in range(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")
  • 10
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Pyecharts是一款基于百度开源的数据可视化JS库EchartsPython可视化工具。它提供了丰富的可视化类型,能够帮助开发者在数据处理和数据可视化方面进行快速而灵活的操作。 要使用Pyecharts进行数据可视化,首先需要安装Pyecharts库。可以通过pip install pyecharts命令来进行安装。安装完成后,可以通过导入相应的模块来使用不同的可视化类型。例如,可以使用pyecharts.charts模块中的HeatMap类来创建热力图。 在创建热力图时,需要传入一些必要的参数,如series_name,yaxis_data和value。其中,series_name表示系列的名称,yaxis_data表示y轴的数据,value表示具体的数值。可以使用add_xaxis、add_yaxis和set_global_opts等方法来设置热力图的横轴、纵轴和全局选项。最后,通过render方法将生成的可视化结果保存为HTML文件。 使用Pyecharts可以实现丰富多样的数据可视化,除了热力图外还有诸如折线图、柱状图、散点图等等。通过设置不同的参数和调用相应的方法,可以灵活地创建各种类型的图表,并进行数据展示和分析。 总结起来,要入门Pyecharts,需要先安装Pyecharts库,然后导入相应的模块来创建不同类型的图表,传入必要的参数和调用相应的方法进行设置,最后通过render方法将结果保存为HTML文件。这样就可以开始使用Pyecharts进行数据可视化了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python数据可视化神器--pyecharts 快速入门](https://blog.csdn.net/spider_py/article/details/89893417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值