下面让我们继续学习这个pyecharts图表库
一:pyecharts-snapshot插件
如果想直接将图片保存为 png, pdf, gif 格式的文件,可以使用该插件。但先要安装Nodeis环境。
插件GitHub地址:pyecharts-snapshot
Nodies地址:Nodejs
在cmd命令行中依下面的方法安装环境:
npm install -g phantomjs-prebuilt
pip install pyecharts-snapshot
render
方法 bar.render(path='snapshot.png')
文件结尾可以为 svg/jpeg/png/pdf/gif。请注意,svg 文件需要你在初始化 bar 的时候设置 renderer='svg'。
二:绘制图形
1.下面是基本的pyecharts图表构建和渲染的方法
实例一个具体类型图表的对象 | chart = FooChart() |
为图表添加通用的配置,如主题 | chart.use_theme() |
为图表添加特定的配置 | geo.add_coordinate() |
添加数据及配置项 | chart.add() |
生成本地文件(html/svg/jpeg/png/pdf/gif) | chart.render() |
2.多次显示图表
最新版本的pyecharts可以使用以下方式显示多个图表:
from pyecharts import Bar, Line
from pyecharts.engine import create_default_environment
bar = Bar("我的第一个图表", "这里是副标题")
bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
line = Line("我的第一个图表", "这里是副标题")
line.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
env = create_default_environment("html")
# 为渲染创建一个默认配置环境
# create_default_environment(filet_ype)
# file_type: 'html', 'svg', 'png', 'jpeg', 'gif' or 'pdf'
env.render_chart_to_file(bar, path='bar.html')
env.render_chart_to_file(line, path='line.html')
该代码,减少了部分重复操作,速度有所提高。
3.配置项这里先不讲,先在让我们创建一张柱状图(条形图)和一张饼状图:
柱状图
(1) Bar(条形图)
注:通过柱形的高度/条形的宽度来表现数据的大小。
(2) bar.add()方法
a:方法签名:
add(name, x_axis, y_axis,
is_stack=False,
bar_category_gap='20%', **kwargs)
方法作用
注:全局配置项要在最后一个 add()
上设置,否侧设置会被冲刷掉。
b.使用标记点和标记线
mark_point=["average"]和mark_line=["min", "max"]函数即可设置标记点和标记线
c.is_convert属性
该属性设置为True后is_convert=True即可交换x轴和y轴
d.dataZoom效果
dataZoom 组件用于区域缩放,达到能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。
'slider' 类型
有单独的滑动条,用户在滑动条上进行缩放或漫游。
加入is_label_show=True, is_datazoom_show=True即可。
'inside' 类型
内置于坐标系中,使用户可以在坐标系上通过鼠标拖拽、鼠标滚轮、手指滑动(触屏上)来缩放或漫游坐标系。
加入
is_datazoom_show=True,
datazoom_type="inside",
datazoom_range=[10, 25],
即可
'both' 类型
加入
is_datazoom_show=True,
datazoom_type="both",
datazoom_range=[10, 25],
即可
多 dataZoom 效果,效果同时支持 X、Y 轴
加入
# 默认为 X 轴,横向
is_datazoom_show=True,
datazoom_type="slider",
datazoom_range=[10, 25],
# 新增额外的 dataZoom 控制条,纵向
is_datazoom_extra_show=True,
datazoom_extra_type="slider",
datazoom_extra_range=[10, 25],
is_toolbox_show=False,
即可
注: datazoom 适合所有平面直角坐标系图形,也就是(Line、Bar、Scatter、EffectScatter、Kline)。
e.当 x 轴或者 y 轴的标签因为过于密集而导致全部显示出来会重叠的话,可采用使标签旋转的方法
加入xaxis_interval=0, xaxis_rotate=30, yaxis_rotate=30即可
注: 可通过设置 xaxis_min/xaxis_max/yaxis_min/yaxis_max 来调整 x 轴和 y 轴上的最大最小值。针对数值轴有效!。
可以通过 label_color 来设置柱状的颜色,如 ['#eee', '#000'],所有的图表类型的图例颜色都可通过 label_color 来修改。
(3) 瀑布图和直方图这里就不介绍了,具体大家可以参看百度的pyecharts介绍
(4) Bar属性设置
a.通过在Bar中设置extra_html_text_label=["bar_extra_html_text_label", "color:red"])即可得到额外的文本标签。
b.通过在Bar中设置xaxis_line_color="green", xaxis_line_width=5, xaxis_label_textcolor="black",或yaxis_line_color="green", yaxis_line_width=5, yaxis_label_textcolor="black",可以控制X/Y轴坐标轴颜色以及宽度。
(5) 进行两次add的时候,有一次的某项数据丢失,可以用0补充。
现在我们创建一个柱形图表:
、