目录
前言
象形柱图它利用SVG图片和形状来表现数据,能够让数据展现更加贴近数据故事背景,视觉表达更为丰富生动。你可以通过新增的内置多种图案快速实现数据形态的修饰,同时结合图案的个性化设置效果搭配来改变数据的展现效果。今天让我们来学习一下象形柱形图,加深对它的了解吧。
一.普通图像画制象形柱形图
1.象形柱形图是什么?它有什么适用场景?
象形柱图(Pictorial Bar)是属于柱形图的一种,用象形图的方式来展示,象形图是通过其与物理对象的图画相似来表达其意义的表意文字。象形柱图的整体适用范围和柱形图一致,象形柱图比起实际的应用,更多的是符合人们不同审美的需求,用更形象的图案去展示数据。
象形柱图和柱形图的使用方法一致,主要用于多个分类间的数据(大小、数值)的对比,可以用来显示一段时间内的数据变化或显示各项之间的比较情况,柱形图简单直观,易于比较各组数据之间的差别。
2.柱形象形图有什么优劣势?
优势:相较于普通柱形图,象形柱图更加美观,在表现数据的同时也能通过图形表达数据之外的含义。
缺点:象形柱图不适合用于表达趋势的数据,这种数据更适合用折线图或者面积图;也不适合用于表达占比的数据,这种数据更适合用于饼图。
3.导入库
代码如下(示例):
from pyecharts import options as opts
from pyecharts.charts import PictorialBar
注意:
如果还没有pyecharts库的话,我们windows中搜索anaconda prompt打开,运行下述代码:
pip install pyecharts
或使用清华镜像下载(建议使用这个):
pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple
4.最终具体代码
from pyecharts import options as opts
from pyecharts.charts import PictorialBar
c = (
PictorialBar()
.add_xaxis(["reindeer", "ship", "plane", "train", "car"])
.add_yaxis(
"",
[
{'value':1,'symbol':'image://小猪佩奇.jpg'},
{'value':2,'symbol':'image://小猪佩奇2.jpg'},
{'value':3,'symbol':'image://小猪佩奇3.jpg'},
{'value':4,'symbol':'image://小猪佩奇4.jpg'},
{'value':5,'symbol':'image://小猪佩奇5.jpg'},
],
label_opts=opts.LabelOpts(is_show=False), # 不显示数据标签
symbol_size=50, # 图形大小
symbol_repeat="fixed",# 是否用重复图形表示柱形
symbol_offset=[0, 0], # 图形的偏移
is_symbol_clip=True, # 是否剪切图形
)
.reversal_axis()
.set_global_opts(
title_opts=opts.TitleOpts(title="PictorialBar-Vehicles in X City"),
xaxis_opts=opts.AxisOpts(is_show=False),
yaxis_opts=opts.AxisOpts(
axistick_opts=opts.AxisTickOpts(is_show=False),
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(opacity=0)
),
),
)
)
c.render_notebook()
使用.add_xaxis([ ])画制图形的x轴参数,
使用.add_yaxis([ ])画制图形的y轴参数,因为这里我们使用图形,因此没有定义。
传入自己想要的图片来勇于表示柱形,在这里,我使用的是小猪佩奇的图片
使用render_notebook进行渲染
在这里要注意传入的图片图形,需要与我们的代码文件处于同一位置!大家还可以通过其他的配置样式,来修改我们的图形参数。
基本语法可以参考以下网站:
https://gallery.pyecharts.org/#/PictorialBar/pictorialbar_multi_custom_symbols
5.图形效果
二.通过json文件显示图标
1.什么是json文件?
“.json”是用来存储简单的数据接口和对象的文件;json是一种轻量级的数据交换格式,基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据,用于许多web应用程序来进行数据交换。
2.导入库
代码如下(示例):
import json
from pyecharts import options as opts
from pyecharts.charts import PictorialBar
with open("symbol.j