Pyecharts V1 快速入门(二):柱形图与双Y轴折线图的创建

在上一节Pyecharts V1 快速入门(一):配置参数传递及示例 介绍了图表和快速创建及配置项参数设置及传递。这节将会在前面的基础上,创建柱形图和双Y轴折线图,并且使用overlap将两条折线叠加在同一个图表上


1.全局配置项set_global_options()

bar=Bar(init_opts=opts.InitOpts(bg_color='rgba(255,249,196,0.2)',width='1000px',height='600px',page_title='Test',theme=ThemeType.ESSOS))  # 设置图表背景色、大小、主题、网页标题

在上一节我们设置的是图表背景色、大小、主题、网页标题,set_global_options()是对图表更细致和实用的设置,下面是设置的对应效果

在这里插入图片描述

查看源码可知set_global_options()是类Chart成员函数,UML类图如下
在这里插入图片描述
源码如下,可以看到是和开头的设置效果图片是对应的
在这里插入图片描述

2.系列配置项set_series_opts()

跟全局配置项同理,不再赘述
在这里插入图片描述
配置项的具体设置应该结合官方文档和源码学习,必须注意参数的名字和类型,忘了就看下源码。下面给出一个实例

提醒:应该在add_xaxis和add_yaxis后,再调用set_global_opts和set_series_opts,不然会造成设置失效


3.实战

本节使用的数据是某件商品的尺码、价格、利润、销量,如下

size=[35.5,36.0,36.5,37.5,38.0,38.5,39.0,40.0]
price=[580, 571, 577, 582, 582, 545, 589, 566]
profit=[132, 123, 129, 134, 134, 99, 140, 119]
sold_num=[10, 31, 26, 43, 18, 27, 7, 6]

①price的柱状图

from pyecharts.charts import Bar,Line,Page
from pyecharts import options as opts
def draw_bar():
    size = [35.5, 36.0, 36.5, 37.5, 38.0, 38.5, 39.0, 40.0]
    price = [580, 571, 577, 582, 582, 545, 589, 566]
    bar=Bar()
    bar.add_xaxis(size)  # 设置x轴元素
    bar.add_yaxis("价格", price)  # 设置y轴名称以及数值
    bar.set_global_opts(title_opts=opts.TitleOpts(title="价格柱状图"),  # 设置图表标题
                        toolbox_opts=opts.ToolboxOpts(is_show=True,feature=opts.ToolBoxFeatureOpts(data_zoom=opts.ToolBoxFeatureDataZoomOpts(is_show=False))),  # 设置工具箱显示,并且关闭区域缩放配置项
                        yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value}元"))  # 设置y轴单位
                        )
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True,color='red'),  # 设置显示标签及颜色,标签是显示在柱上的数值
                        itemstyle_opts=opts.ItemStyleOpts(color='purple'))  # 设置图元颜色
    bar.render()

在这里插入图片描述

为什么是这样设置y轴单位?

yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value}元")) # 设置y轴单位

这是根据源码和官方文档得出来的,从set_global_opts()中得到yaxis_opts: types.Axis = None
在这里插入图片描述

继而转到D:\Python\Lib\site-packages\pyecharts-1.9.0-py3.7.egg\pyecharts\types.py得到
在这里插入图片描述
再转到D:\Python\Lib\site-packages\pyecharts-1.9.0-py3.7.egg\pyecharts\options\global_options.py
在这里插入图片描述
看到类型是LabelOpts转到D:\Python\Lib\site-packages\pyecharts-1.9.0-py3.7.egg\pyecharts\options\series_options.py
在这里插入图片描述
在官方文档中找到相应章节
在这里插入图片描述
以上就是典型的源码和官方文档的使用,当不知道如何进行参数设置以达到理想效果的时候,千万别着急,从源码入手,关注参数名字和类型,自然会迎刃而解

②profit和sold_num的双Y轴折线图

有时候需要反映同一个x值下,两个指标的关系,就得用到双Y轴

def draw_double_line():
    size = ['35.5', '36.0', '36.5', '37.5', '38.0', '38.5', '39.0', '40.0']  # 元素必须是str类型,否则不能显示折线
    profit = [132, 123, 129, 134, 134, 99, 140, 119]
    sold_num = [10, 31, 26, 43, 18, 27, 7, 6]
    line1=Line()
    line1.add_xaxis(size)
    line1.add_yaxis(series_name="利润", y_axis=profit)
    line1.extend_axis(yaxis=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value}双"),axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color='blue'))))  # 添加一条蓝色的y轴
    line1.set_global_opts(title_opts=opts.TitleOpts(title="利润与销量"),
                          toolbox_opts=opts.ToolboxOpts(is_show=True,feature=opts.ToolBoxFeatureOpts(data_zoom=opts.ToolBoxFeatureDataZoomOpts(is_show=False))),
                          yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value}元"),axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="red"))),  # 设置y轴单位和颜色
                          )
    line1.set_series_opts(label_opts=opts.LabelOpts(is_show=True))
    line2=Line().add_xaxis(size).add_yaxis("销量",sold_num,yaxis_index=1)  # 创建一个新的Line对象,并且设置y轴索引,即挂在新建的y轴上
    line1.overlap(line2)  # 将line2叠加在line1图上
    line1.set_colors(["red","blue"])  # 为了区分两条line,设置不同颜色
    line1.render()

配合工具箱与动画的演示如下,能非常直观地反应数据量以及二者的关系
在这里插入图片描述

注意:为什么有时候折线图没有显示折线?

因为x轴的数据格式不对,记住x轴是一个list,里面的元素必须是str

4.总结

set_global_opts()中用的最多的就是title_optstoolbox_optsxaxis_optsyaxis_opts,其中AxisOpts非常重要
在这里插入图片描述

未经同意,请勿转载

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值