pyecharts的各种用法

认识图表类

      pyecharts 支持绘制30余种丰富的 ECharts 图表,针对每种图表均提供了相应的类,并将这些图表类封装到 pyecharts.charts 模块中,例如 9.2.1节的示例中表示柱形图的 Bar类pyecharts.charts 模块的常用图表类如表9-1所示。

pyecharts.charts模块的常用图表类
Line折线图
Bar柱形图/条形图
Pie饼图
Scatter散点图
EfecScatier带有涟婍特效动画的散点图
Bexplot箱形图
Radar雷达图
Line3D3d折线图
Bar3D3d柱形图
Scanter3D3d散点图
Surfsce3D3d曲面图
Map统计图
HeatMap热力图
Funnel漏斗图
Gage仪表盘
Sankey桑基图
Tree树状图
说明

表 9-1 中列举的所有类均继承自 Base 基类,它们都可以使用与类同名的构造方法创建实例。例如,Bar类的构造方法的语法格式如下:

Bar(iniopts=opts.InitOpts())


以上方法的init_opts 参数表示初始化配置项,该参数需要接收一个ImtOpts类的对象通过构建的 InitOpts 类的对象为图表指定一些通用的属性,例如背景颜色、画布大小等例如,9.2.节的示例中创建的指定画布大小的 Bar类的对象,具体代码如下所示
 

bar= Bar(init_opts=opts.InitOpts(width='600px',height='300px'))

认识配置顶

      若pyecharts 需要为图表设置全局配置项(IniOpts 除外)则需要将局配置项传prechats 官方文档,此处不再赞述。set_globalLopt0方法。seglohalLopts0方法的语法格式如下:

set_global_opts(self,title_opts=opts.TitleOpts(),
legend_opts=opts.legendOpts(),tooltip_opts-None,toolbox_opts=None, brush_opts=None, xaxis_optseNone,yaxis_opts=None. visualmap_opts=None,
datazoom_opts=None,graphoc_opts=None,axispointer_opts=None)


该方法各参数的含义如下:

  • title_opts :表示标题组件的配置项
  • legend_opts:表示图例组j件的配置项
  • toolrip_opts :表示提示框组件的配置项
  • toolbox_opts :表示工具箱组件的配置项
  • brush_opts: 表示区域选择组件的配置项。
  • ”xaxis_opts,yaxis_opss :表示X轴,y轴的配置项
  • visualmap_opts :表示视觉映射组件的配置项。
  • datazoom_opts :表示数据区域缩放组件的配置项
  • graphoc_opts:表示原生图形元素组件的配置项
  • axispointeer_opts:表示坐标轴指示器组件的配置项

系列配置项

  系列配置项是一些针对图表特定元素展性的配置项,包括图元式、文本拜式、标签,线条样式、标记样式、填充样式等,其中每个配置项都对应一个类。pyecharts的系列置如表9-3所示。

pyecharts的系列配置项
说明
ItemStyleOpts图元样式配置项
TextStyleOpts文本样式配置项
LabelOpts标签配置项
LineStyle0pts线条样式配置项
Splitl ineOpts分割线配置项
MarkPoint0pts标记点配置项
MarkLine0pts标记线配置项
Mark Area0pts标记区配置项
EffectOpts涟奇特效配置项
AreaStyleOpts区域填充样式配置项
SplitAreaOpts分隔区域配置项
GridOpts直角坐标系网格配置项

     以上每个类都可以通过与之同名的构造方法创建实例。例如,创建一个标签配置项,代码如下:

label_opts=opta.LabelOpts (is_show=True, positione='right',
color='gray',font_size=14,rotate=10)

渲染图表

  图表图表基类 Base 主要提供了两个渲染图表的方法 :render0 和 render_notebook0。具体介绍如下:
1.render0方法
    render0 方法用于将图表渲染到 HTML文件,默认为位于程序根目录的 render.html文件render0方法的语法格式如下:

render(self, path="render.html", template_name="simple_chart.html",
env=None,**kwargs)


以上方法中的参数 path 表示生成文件的路径,默认为 render.html;template_name 表示模板的路径。render0方法会返回HTML文件的路径字符串。
2.render_notebook))方法
    render_notebook0方法用于将图表染到Jupyter Notebook 工具中,它无须接收任何参数例如,9.2.1节的示例中染图表到Jupyter Notebook 中的代码如下:

bar.render_notwbook()

绘制常用图表

pyecharts绘制各种图表的过程大致相同,可以分为以下几步:
(1)创建图表相应类的对象 ;
(2)添加图表数据;
(3)添加图表系列配置项;
(4)添加图表全局配置项;
下面将为读者演示如何使用pvecharts 绘制一些常见的图表,包括折线图、饼图或圆环图散点图、3D柱形图、统计地图、漏斗图和桑基图。
(5)渲染图表。

9.31 绘制折线图

pyecharts的 Line类表示折线图,该类中提供了一个add_vaxis0方法,使用add_yaxis0方法可以为折线图添加数据和配置项。add_yaxis()方法的语法格式如下:

add_yaxis(self,series_name ,y_axis,is_selected=True,is_connect_noner=False,
 xaxis_index=None, yaxis_inied=None,color=None,is_saymbol_show=True,symbol=None,symbol_size=4,
stack=None,,arkpoint_opts=None,markline_opts=None,tooltip_opts=None,
label_opts=opts.LabelOpts(),linestyle_opts=opts.LineStyleOpts(),
areastyle_opts=opts.Arenstyleopts() ,itematyle_opts-=None)

该方法常用参数的含义如下:

  • series_name:表示系列的名称,显示于提示框和图例中
  • y_axis:表示系列数据。
  • xaxis_index:表示x轴的索引,用于拥有多个x轴的单图表中
  • yaxis_index:表示y轴的索引,用于拥有多个y轴的单图表中。
  • color:表示系列的注释文本的颜色
  • is_symbol_show:表示是否显示标记及注释文本,跌认为True。
  • symbol:表示标记的图形,可以取值为'circle(圆形)、recr(矩形)、roundRecr(圆角矩形 )、'triangle'(三角形 )、'diamond( 菱形 )pin( 大头针 )、arow(箭头)、none(无)
  • symbol_size:表示标记的大小,可以接收单一数值,也可以接收形如[width,heigt]的数组
  • slack :表示将轴上同一类目的数据堆叠放置
  • is_smooth:表示是否使用平滑曲线
  • is_stcp:表示是否显示为阶梯图

利用以上的知识点写一道例题:

实例 :请用一张独立画布,将柱形图和折线图融合在同一个坐标系展示表中数据。

               2014-2021年中国中医类医疗卫生机构诊疗量

from pyecharts.charts import Bar, Line
from pyecharts import options as opts
 
#准备数据
x_data=["2014年","2015年","2016年","2017年","2018年","2019年","2020年","2021年"]
value_1=[87430, 90912, 96225, 101885, 107147, 116390 ,105764 , 120215]
value_2=[7.40 , 4.00 , 4.00 , 5.81 , 5.16 ,   8.63 , -9.13 ,   13.66]
bar=(
    Bar(init_opts=opts.InitOpts(width='1000px', height='500px'))
    .add_xaxis(x_data)
    .add_yaxis(
        y_axis=value_1,
        yaxis_index=1, #表示y轴的索引,用于拥有多个y轴的单图表中。
        series_name='诊疗量(万人次)',  #图例名:诊疗量(万人次)
        z=0,#因为折线图会被柱状图遮挡,所以把柱形图置底
               label_opts=opts.LabelOpts(is_show=False),
    )
    .extend_axis(
      yaxis=opts.AxisOpts(
          name='诊疗量(万人次)',# 柱形图y轴名称
          type_='value',
          position='left',# 柱形图y轴在左边显示
      )
    )
 
    .extend_axis(
      yaxis=opts.AxisOpts(
          name='同比增速(%)',# 折线图y轴名称
          type_='value',
          position='right',# 折线图y轴在右边显示
    )
)
.set_global_opts(       #设置全局配置项
        title_opts=opts.TitleOpts(title='2014-2021年中国中医类医疗卫生机构诊疗量'),      #标题名称
        legend_opts=opts.LegendOpts(pos_left='45%' ),       #图例距离左边边距:40%
        tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'),  #显示提示框组件
        toolbox_opts=opts.ToolboxOpts(is_show=True)  #显示工具栏
    )
)
 
 
 
line = (
    Line()  #创建Line类的对象
         .add_xaxis(x_data) #添加x轴的数据
         .add_yaxis(
         series_name='同比增速(%)', #图例名:同比增速(%)
         y_axis=value_2,  #y轴折线图数据
         yaxis_index=2,   #表示y轴的索引
             z=2
    )
)
#渲染成html网页
bar.overlap(line).render("小羊.html")

运行结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值