文章目录
声明:本系列所述均仅限入门,内容如冰山一角,想了解详情可以访问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")
运行效果
(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")
运行效果
(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")
【运行结果】
下一章的链接
如果觉得博主写的还不错的,欢迎点赞、评论、加关注,大家的访问就是博主更新文章不竭的源动力!