Pyecharts实现了满足各种需求,涵盖了各行业的图表,类型多样、丰富多彩,它实现的图表,支持动态效果,支持动态展示数据,鼠标悬停在图上,即可显示数值和标签等内容。常见的图表类型如下表所示:
图表类型 |
描述 |
Bar |
柱状图/条形图; |
Bar3D |
3D 柱状图; |
Boxplot |
箱形图; |
EffectScatter |
带有涟漪特效动画的散点图; |
Funnel |
漏斗图; |
Gauge |
仪表盘; |
Geo |
地理坐标系; |
Graph |
关系图; |
HeatMap |
热力图; |
Kline |
K线图; |
Line |
折线/面积图; |
Line3D |
3D折线图; |
Liquid |
水球图; |
Map |
地图; |
Parallel |
平行坐标系; |
Pie |
饼图; |
Polar |
极坐标系; |
Radar |
雷达图; |
Sankey |
桑基图; |
Scatter |
散点图; |
Scatter3D |
3D散点图; |
ThemeRiver |
主题河流图; |
WordCloud |
词云图。 |
各种图表的效果,都可以在Echarts官网上在线查看,实现的源代码,可在Pyecharts上找到,下面我们就说几种有意思并且常见图表的实现方法。
3.1 漏斗图
漏斗图Funnel是通过对业务的各个关键环节的描述,来衡量各个环节的业务表现。从漏斗图可以非常直观地看到各个业务的转化程度。从某种意义来说,漏斗图是路径分析的特殊应用,主要是针对关键路径的转化分析。
程序清单:funnel.py
import pyecharts.options as opts
from pyecharts.charts import Funnel
x_data = ["冰箱", "洗衣机", "微波炉", "热水器", "电风扇"]
y_data = [399, 299, 199, 99, 69]
data = [[x_data[i], y_data[i]] for i in range(len(x_data))]
funnel = Funnel().add(
series_name="电器",
data_pair=data,
gap=2,
tooltip_opts=opts.TooltipOpts(trigger="item",
formatter="{a} <br/>{b} : {c}%"),
label_opts=opts.LabelOpts(is_show=True, position="inside"),
itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),
).set_global_opts(title_opts=opts.TitleOpts(title="电器销售数据分析"))
funnel.render("funnel.html")
运行程序之后,会在当前目录生成一个funnel.html文件,用浏览器打开,看到如下的效果:
3.2 仪表盘
仪表盘Gauge是数据分析的工具,是对关键数据指标的建模,所以数据仪表盘的使用对象是数据分析者,也就是人力资源从业者和工程师,因为数据仪表盘有着交互的数据切换功能,能更加高效的进行数据分析。在电力行业,仪表盘可用来实时监测电压或电流数据的变化。
程序清单:gauge.py
import pyecharts.options as opts
from pyecharts.charts import Gauge
gauge = Gauge().add(series_name="电压数据", detail_label_opts=
opts.GaugeDetailOpts(
offset_center=[0, "70%"],
), data_pair=[("电压(V)", 210)], max_=300).set_global_opts(
legend_opts=opts.LegendOpts(is_show=False),
tooltip_opts=opts.TooltipOpts(is_show=True),
)
gauge.render("gauge.html")
运行程序之后,会在当前目录生成一个gauge.html文件,用浏览器打开,看到如下的效果:
3.3 雷达图
雷达图Radar主要应用于企业经营状况——收益性、生产性、流动性、安全性和成长性的评价。上述指标的分布组合在一起非常像雷达的形状,因此而得名。它是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法。
程序清单:radar.py
from pyecharts import options as opts
from pyecharts.charts import Radar
v1 = [[112, 110, 108, 94, 94, 52]]
v2 = [[116, 120, 120, 96, 96, 56]]
radar = Radar().add_schema(
schema=[
opts.RadarIndicatorItem(name="语文", max_=120),
opts.RadarIndicatorItem(name="数学", max_=120),
opts.RadarIndicatorItem(name="英语", max_=120),
opts.RadarIndicatorItem(name="历史", max_=100),
opts.RadarIndicatorItem(name="政治", max_=100),
opts.RadarIndicatorItem(name="体育", max_=60),
]
).add("期中考", v1).add("期末考", v2)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="成绩分析"),
)
radar.render("radar.html")
运行程序之后,会在当前目录生成一个Radar文件,用浏览器打开,看到如下的效果:
3.4 词云图
词云,也称为文本云或标签云。在词云图片制作中,一般我们规定特定文本词在文本数据源中出现的次数越多,说明该词越重要,其在词云中所占区域也就越大。
词云图对文本中出现频率较高的“关键词”予以视觉化的展现,过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。它不仅可以应用在企业数据分析上,还可以应用到媒体营销或者平面设计当中。
程序清单:wordcloud.py
import pyecharts.options as opts
from pyecharts.charts import WordCloud
data = [("生活资源", "999"), ("供热管理", "888"), ("供气质量", "777"),
("生活用水管理", "688"),("一次供水问题", "588"), ("交通运输", "516"),
("城市交通", "515"), ("环境保护", "483"), ("房地产管理", "462"),
("城乡建设", "449"), ("社会保障与福利", "429"),
("社会保障", "407"),("文体与教育管理", "406"), ("公共安全", "406"),
("公交运输管理", "386"), ("出租车运营管理", "385"), ("供热管理", "375"),
("市容环卫", "355"), ("自然资源管理", "355"), ("粉尘污染", "335"),
("噪声污染", "324"), ("土地资源管理", "304"), ("物业服务与管理", "304"),
("医疗卫生", "284"), ("粉煤灰污染", "284"), ("占道", "284"),
("供热发展", "254"), ("农村土地规划管理", "254"), ("生活噪音", "253"),
("供热单位影响", "253"), ("城市供电", "223"), ("房屋质量与安全", "223"),
("大气污染", "223"), ("房屋安全", "223"), ("文化活动", "223"),
("拆迁管理", "223"), ("公共设施", "223"), ("供气质量", "223"),
("供电管理", "223"), ("燃气管理", "152"), ("教育管理", "152"),
("医疗纠纷", "152"), ("执法监督", "152"), ("设备安全", "152"),
("政务建设", "152"), ("县区、开发区", "152"), ("宏观经济", "152"),
("教育管理", "112"), ("社会保障", "112"), ("生活用水管理", "112"),
("物业服务与管理", "112"), ("分类列表", "112"), ("农业生产", "112"),
("二次供水问题", "112"), ("城市公共设施", "92"), ("拆迁政策咨询", "92"),
("物业服务", "92"), ("物业管理", "92"), ("社会保障保险管理", "92"),
("低保管理", "92"), ("文娱市场管理", "72"), ("城市交通秩序管理", "72"),
("执法争议", "72"), ("商业烟尘污染", "72"), ("占道堆放", "71"),
("地上设施", "71"), ("水质", "71"), ("无水", "71"),
("供热单位影响", "71"), ("人行道管理", "71"), ("主网原因", "71"),
("集*热", "71"), ("客运管理", "71"), ("国有公交(大巴)管理", "71")]
word = WordCloud().add(series_name="热点分析",
data_pair=data, word_size_range=[6, 66])
.set_global_opts(title_opts=opts.TitleOpts(
title="热点分析", title_textstyle_opts=
opts.TextStyleOpts(font_size=23)),
tooltip_opts=opts.TooltipOpts(is_show=True),
)
word.render("wordcloud.html")
好了,Pyecharts图表的内容就说到这了,关注我,人生更精彩。
今日头条:老陈说编程,到2021年国庆节,Python就全部分享完了,完整的课程有:
1.《12天搞定Python》
2.《16天搞定Python数据分析》
3.《10天搞定Python网络爬虫》
4. 《Django3.0项目实战》
5. 《25天学会Wxpython》
6. 《28天学会PyQt5》发布中
7. 《25天学会Seaborn数据分析》在csdn发布完了
8. 《3天搞定Pyecharts数据分析》