pyecharts的用法入门(三)柱状图分享基础篇之柱状图6大元素和设置方式


上一章的链接

声明:本系列所述均仅限入门,内容如冰山一角,想了解详情可以访问Pyecharts官方使用文档

本节讲述设置柱状图6大元素和设置方法。

其实echarts各图形的结构框架基本一致,参数不同而已,故学会柱状图就能够举一反三、触类旁通了。多类比、多查看文档,你也能学会echarts画图

一、何为柱状图6大元素

其实这个六大元素百度都搜不到,因为这是小远借鉴了其他博主的文章加以修改并自己总结的。有了这六大要素一个柱状图就能显得比较完整且好看,这六项分别为“标题(title)”、“图例(legend)”、“X轴(xaxis)”、“Y轴(yaxis)”、“区域分隔线(SplitLine)”、“数据标签(label)”,如图:
六大元素

二、如何设置

1、导入需要的模块

#导入需要使用的图表
from pyecharts.charts import Bar
#导入配置项
from pyecharts import options as opts

2、基础代码框架

法一:

# 伪代码
bar = Bar()  # 定义为柱状图
bar.add_xaxis([1, 2, 3])  # 横坐标
bar.add_yaxis("y值", [4, 5, 6], 其他参数)  # 纵坐标值和纵坐标的一些数据配置项
bar.set_global_opts(这里面配置 全局参数)
bar.set_series_opts(这里面配置 系列参数) 
bar.render("html名称.html")

法二:

# 伪代码
bar=(
     Bar()  
         .add_xaxis([1,2,3])
         .add_yaxis("y值", [4,5,6], 其他参数)
         .set_global_opts(这里面配置 全局参数)
         .set_series_opts(这里面配置 系列参数)
)
bar.render("html名称.html")

新版pyecharts可以采用以上的链式调用方式,两者效果相同,但小远更加喜欢的是第二种方法(代码清晰并且看上去高大上一点,哈哈~~),当参数比较多的时候能够比较直观,所以之后的代码就只会用第二种框架了。

3、关于6大元素的配置位置

6大元素中,除数据标签属系列参数,在set_series_opts后面设置外;其他均属全局参数,在set_global_opts后面设置。

4、六大元素,一一讲解

再次声明,此处的用法仅仅为很小的一部分,小远总结的一般比较常用,主要是对于框架的理解,详细用法请参考Pyecharts官方使用文档

(1)标题

标题分正副,代码如下

# -*- coding: utf-8 -*-
# @Time: 2020/12/8 13:49
# @Author: 胡志远
# @Software: PyCharm

from pyecharts.charts import Bar  ##导入需要使用的图表
from pyecharts import options as opts  ##导入配置项

Bar1 = (
    Bar()
        .add_xaxis(['A1', 'A2', 'A3'])
        .add_yaxis("系列1"  # 设置系列名称,就是设置纵坐标名称
                   , [100, 200, 300]
                   )
        # 开始配置
        .set_global_opts(title_opts=opts.TitleOpts(title='主标题'  # 设置主标题名称
                                                   , subtitle='副标题'  # 设置副标题名称
                                                   , pos_left='25%'  # 标题的位置,距离左边25%距离,也可以直接用数值,表示距离左边的绝对距离
                                                   , item_gap=10  #主副标题之间的距离
                                                   # 设置主标题的格式
                                                   , title_textstyle_opts=opts.TextStyleOpts(color='black'  # 颜色写对应单词就行,默认黑
                                                                                             # 设置字体大小,默认值medium,可选项还有small等,还能设置固定值
                                                                                             , font_size=20
                                                                                             # 设置字体粗细,默认为normal=400,bold加粗,bolder比父元素更粗,lighter更细,也可以直接用数值
                                                                                             , font_weight='bold'
                                                                                             )
                                                   # 与主标题类似,小标题的格式配置
                                                   , subtitle_textstyle_opts=opts.TextStyleOpts(color='blue'
                                                                                                # 风格选择:'normal'(默认),'italic'(斜体),'oblique'(倾斜,与斜体效果差不多)
                                                                                                , font_style='oblique'
                                                                                                , font_size=12
                                                                                                )
                                                   )
                         )
)

Bar1.render("设置标题.html")

运行效果
标题

(2)图例

一个统计图中可能有多个项,就可能会有多个图例,比如说

# -*- coding: utf-8 -*-
# @Time: 2020/12/8 13:49
# @Author: 胡志远
# @Software: PyCharm

from pyecharts.charts import Bar  ##导入需要使用的图表
from pyecharts import options as opts  ##导入配置项

Bar2 = (
    Bar()
        .add_xaxis(['A1', 'A2', 'A3'])
        .add_yaxis("系列1"  # 设置系列名称,就是设置纵坐标名称
                   , [100, 200, 300]
                   )
        .add_yaxis("系列2"
                   , [150, 180, 200]
                   )
        # 开始配置
        .set_global_opts(legend_opts=opts.LegendOpts(type_=None  # 'plain':普通图例。缺省就是普通图例。
                                                     # 'scroll':可滚动翻页的图例。当图例数量较多时可以使用。
                                                     , pos_left='right'  # 图例横向的位置,right表示在右侧,也可以为百分比
                                                     , pos_top='middle'  # 图例纵向的位置,middle表示中间,也可以为百分比
                                                     , orient='vertical'  # horizontal #图例方式的方式(横向、纵向)
                                                     # 设置图标形式 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'
                                                     , legend_icon='triangle'
                                                     , textstyle_opts=opts.TextStyleOpts(color='blue')  # 这一部分可以参考标题
                                                     )
                         )
)

Bar2.render("设置图例.html")

运行效果
GIF

(3)X轴

与X轴相关的设置项有X轴轴线本身、X轴坐标值、轴刻度等等

# -*- coding: utf-8 -*-
# @Time: 2020/12/8 13:49
# @Author: 胡志远
# @Software: PyCharm

from pyecharts.charts import Bar  ##导入需要使用的图表
from pyecharts import options as opts  ##导入配置项

Bar3 = (
    Bar()
        .add_xaxis(['A1', 'A2', 'A3'])
        .add_yaxis("系列1"  # 设置系列名称,就是设置纵坐标名称
                   , [100, 200, 300]
                   )
        # 开始配置
        .set_global_opts(xaxis_opts=opts.AxisOpts(name='X轴的名称'
                                                  , name_location='middle'  # 坐标轴名字所在的位置
                                                  , name_gap=25  # 坐标轴名字与坐标轴之间的距离
                                                  , name_rotate=15  # 坐标轴名字旋转角度,这个好丑,一般不用,看截图
                                                  , offset=5  # 坐标轴X的值距离X轴的距离
                                                  # 接下来设置X轴坐标值的TextStyle,对于部分参数详情可参照前面标题元素处的注释
                                                  , name_textstyle_opts=opts.TextStyleOpts(color='white'
                                                                                           , font_style='italic'
                                                                                           , font_weight='bolder'
                                                                                           , font_family= 'monospace'
                                                                                           , font_size=14
                                                                                           , background_color='blue'  # 文字背景颜色
                                                                                           , border_color='black'  # 文字块边框颜色
                                                                                           )
                                                  # 下面是一些细枝末节的配置项
                                                  # 坐标轴刻度配置项
                                                  , axistick_opts=opts.AxisTickOpts(is_inside=True  # 刻度线是否在内侧
                                                                                    )
                                                  # 坐标轴线的配置项
                                                  , axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(width=3  # 设置宽度
                                                                                                                     , opacity=0.5  #设置透明度,此处设置不透明
                                                                                                                     , type_='solid'  # 'solid'(实线), 'dashed'(虚线), 'dotted'(更密的虚线)
                                                                                                                     , color='black'
                                                                                                                     )
                                                                                    )
                                                  # 坐标轴标签的格式配置
                                                  , axislabel_opts=opts.LabelOpts(font_size=13  # 字的大小
                                                                                  , rotate=15  # 字旋转的角度,这个在每个坐标轴标签比较长的时候可以用
                                                                                  )
                                                  )
                         )
)
Bar3.render("设置X轴.html")

运行效果
X轴

(4)Y轴

Y轴基础设置用法与X轴用法总体相似,就不展示具体代码了,可自行理解体会。
但是Y轴有的时候需要一些比较特殊的东西,比如说:

(5)Y轴区域分隔线

其实X轴也可以设置区域分割线,但是一般用不上,而且难看。所以这里讲Y轴的。

# -*- coding: utf-8 -*-
# @Time: 2020/12/8 13:49
# @Author: 胡志远
# @Software: PyCharm

from pyecharts.charts import Bar  ##导入需要使用的图表
from pyecharts import options as opts  ##导入配置项

Bar5 = (
     Bar()
         .add_xaxis(['A1', 'A2', 'A3'])
         .add_yaxis("系列1"  # 设置系列名称,就是设置纵坐标名称
                    , [100, 200, 300]
                    )
         .set_global_opts(yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True  # 是否展示Y轴分割线
                                                                                    # y轴分割线显示的相关设置
                                                                                    , linestyle_opts=opts.LineStyleOpts(width=1  # 设置宽度
                                                                                                                        , opacity=0.5  # 设置透明度
                                                                                                                        , type_='dotted'  # 'solid', 'dashed', 'dotted'
                                                                                                                        , color='grey')
                                                                                                                        )
                                                   )
                          )
)
Bar5.render("设置Y轴分割线.html")

【运行结果】
分割线

(6)数据标签

前文也提到,数据标签与众不同的地方首先就在于它的配置位置不同于其他,属系列参数、位于set_series_opts中。

# -*- coding: utf-8 -*-
# @Time: 2020/12/8 13:49
# @Author: 胡志远
# @Software: PyCharm

from pyecharts.charts import Bar  ##导入需要使用的图表
from pyecharts import options as opts  ##导入配置项

Bar6 = (
     Bar()
         .add_xaxis(['A1', 'A2', 'A3'])
         .add_yaxis("系列1"  # 设置系列名称,就是设置纵坐标名称
                    , [100, 200, 300]
                    )
         # 设置数据标签的格式
         .set_series_opts(label_opts=opts.LabelOpts(position='insideTop'
                                                    # 数据标签所在的位置有很多种,如下
                                                    # 'top','left','right','bottom','inside','insideLeft','insideRight'
                                                    # 'insideTop','insideBottom', 'insideTopLeft','insideBottomLeft'
                                                    # 'insideTopRight','insideBottomRight'
                                                    , color='white'  # 数据标签的颜色
                                                    , font_size=12
                                                    # ,formatter  # 数据标签显示格式,参考https://zhuanlan.zhihu.com/p/133467368
                                                    )
                          )
)

Bar6.render("设置数据标签.html")

【运行结果】数据标签

下一章的链接


如果觉得博主写的还不错的,欢迎点赞、评论、加关注,大家的访问就是博主更新文章不竭的源动力!

  • 13
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远哥挺乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值