前言:有关柱状图绘制的代码&参数解析在第二部分,只需要画图的童鞋可以直捣黄龙;如果你是想一起系统学习Echarts的童鞋,其他部分也是很吼的啊!
1.关于Echarts及pyecharts
1.1 简介
Echarts对于自身的定义是一个功能强大的交互式图形和可视化浏览器库(ECharts, a powerful, interactive charting and visualization library for browser),是不错的前端数据可视化工具。
Echarts官网
而 pyecharts则将Echarts和适合做数据处理的python联系起来,提供了三十余种常用图表(如果不咕咕,我尽量都学下去)。
关于pyecharts
1.2 版本及安装
我使用的pyecharts是v1版本(支持Python3.6+),安装方式不管是pip安装还是源码安装都在这个链接中有介绍。(甚至你可以在编译器的虚拟环境下手动导入)
2.Python下Echarts的柱状图(Bar)绘制
在正文之前,先贴一段可以跑出图的代码,不至于看了半天还是两手空空。
from pyecharts.charts import Bar
bar = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]) # 添加横轴
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90]) # 添加纵轴
) # 支持链式调用
bar.render()
下面的工作就是在基础上不断丰富,在功能和外观上不断变成我们想要的样子。
2.1 配置项
pyecharts中的配置项包括全局配置项和系列配置项,这些配置项有初始默认值,直观上影响着图表的外观和功能。熟练了解配置项才能画出心仪的图表。(挖个坑,如果有时间再写一篇配置项相关的文 )
先罗列一些常用的配置项及它们对应的功能:
配置项 | 功能 |
---|---|
InitOpts:初始化配置项 | 画布大小、主题、背景色等 |
TitleOpts:标题配置项 | 主标题、副标题字体位置等 |
AxisOpts:坐标轴配置项 | 坐标轴类型、名称、刻度等 |
LabelOpts:标签配置项 | 标签位置、文字属性等 |
ItemStyleOpts:图元样式配置项 | 图元颜色、纹理、透明度等 |
还有一些更进阶的配置项,暂时就先不介绍,进阶操作可以等一等进阶攻略。下面介绍一些绘制柱状图,也是其他类型图表,经常要自定义元素的配置项定义方法:
2.1.1 初始化配置项
在定义配置项之前,先把万物opts:
from pyecharts import options as opts
首先是画布大小的定义,默认值为900px*500px,可以按照以下代码调整:
bar = Bar(init_opts=opts.InitOpts(width="3000px", height="1500px")) # 3000px*1500px
其次pyecharts 内置提供了 10+ 种不同的风格,另外也提供了便捷的定制主题的方法。默认风格为WHITE,除此之外有LIGHT,DARK,ROMANTIC等。放几张不同风格感受一下。
设置方法如下:
from pyecharts.globals import ThemeType # 导入ThemeType
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) # LIGHT可以替换成喜欢的风格
当然有时候由于预设PNG格式的图表无背景,在预览时的白底下载后变成黑底,这时候可以通过设置背景颜色来调整。
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.WONDERLAND, bg_color="white"))
对比效果:
如果你还有更多想法,插入背景图也可以。(我随便做的,确实挺丑)
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.globals import ThemeType
from pyecharts.commons.utils import JsCode
bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.WESTEROS,
bg_color={
"type": "transparent", "image": JsCode("img")}, #默认重复堆叠,可以设置"repeat":"no-repeat"取消
width="1000px", height="500px"))
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("商家A",