pyecharts是一款将python与echarts结合的强大的数据可视化工具,本系列文章将为你阐述pyecharts的使用细则,让你对数据进行可视化处理时更加得心应手。这一系列中全部代码在Windows 10系统下基于Python3.7和pyecharts1.9.0实际运行通过。
一、前言
通过名字不难发现 PyEcharts = Python + Echarts,Echarts是一款由百度开源的强大的可视化处理工具,当Python与Echarts结合,就成了PyEcharts。前段时间数学建模遇到一些图形可视化问题,pyecharts也是在这个时候进入笔者视野。从现学现用到系统化学习,笔者将通过这一系列文章更新pyecharts基础以及实际应用。
二、安装
打开命令行(win+R),输入以下代码安装pyecharts库。
pip install pyecharts
但是由于某些原因,使用这种方法下载速度不够理想或者直接导致下载失败,遇到这种情况可以修改镜像源,使用下面方法进行下载安装。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts
笔者电脑安装时两种方法并无明显速度区别,如果第一种安装失败或速度过慢的小伙伴可以试试第二种方法。
三、使用实例
由于篇幅原因pyecharts的所有基础绘图方法笔者将会在未来几期依次更新,今天将给大家介绍直角坐标系图的使用实例。
我们需要导入的库有:
from pyecharts.charts import *
from pyecharts.components import Table
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
import random
import datetime
直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。
实现代码:
x_data = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']
y_data = [123,153,89,107,98,23]
bar = (Bar()
.add_xaxis(x_data)
.add_yaxis(' ',y_data)
)
bar.render('直方图.html')
折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。
实现代码:
x_data = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']
y_data = [123,153,89,107,98,23]
line = (Line()
.add_xaxis(x_data)
.add_yaxis(' ',y_data)
)
line.render('折线图.html')
箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。
实现代码:
x_data = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']
y_data = [[random.randint(100, 200) for i in range(10)] for item in x_data]
Box = Boxplot()
Box.add_xaxis(x_data)
Box.add_yaxis("", Box.prepare_data(y_data))
Box.render('箱型图.html')
散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。
实现代码:
x_data = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']
y_data = [123,153,89,107,98,23]
scatter = (Scatter()
.add_xaxis(x_data)
.add_yaxis('',y_data)
)
scatter.render('散点图.html')
除此之外,我们还可以通过EffectScatter方法制作带有涟漪效果的散点图,示例如下。
实现代码:
x_data = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']
y_data = [123,153,89,107,98,23]
effectscatter = (EffectScatter()
.add_xaxis(x_data)
.add_yaxis('',y_data)
)
effectscatter.render('涟漪效果散点图.html')
热力图(Heat Map)是通过密度函数进行可视化用于表示图表中点的密度的热图。它使人们能够独立于缩放因子感知点的密度。现今热力图在网页分析、业务数据分析等其他领域也有较为广泛的应用。
实现代码:
data = [[i, j, random.randint(0, 100)] for i in range(24) for j in range(7)]
hour_list = [str(i) for i in range(24)]
week_list = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
heat = (HeatMap()
.add_xaxis(hour_list)
.add_yaxis("", week_list, data)
)
heat.render('热力图.html')
层叠图是指在一个直角坐标系中将两种或以上的统计图表示出来。这种方法节省了占用空间并在某些情况下可以更直观地看清统计情况。
实现代码:
x_data = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']
y_data_bar = [123, 153, 89, 107, 98, 23]
y_data_line = [153, 207, 123, 189, 123, 107]
bar = (Bar()
.add_xaxis(x_data)
.add_yaxis('', y_data_bar)
)
line = (Line()
.add_xaxis(x_data)
.add_yaxis('', y_data_line)
)
overlap = bar.overlap(line)
overlap.render('层叠图.html')
以上就是这一期给大家带来的用pyecharts绘制直角坐标系图的案例,在下一期笔者将讲解使用pyecharts库绘制地理图表的方法。喜欢的话点个关注噢。