Python与Echarts相结合的可视化工具:pyecharts
pyecharts是将python与echarts相结合的强大数据可视化工具,本文将为您讲解pyecharts的使用细则。
我们都知道python上的可视化工具matplotlib,前段时间做Spark项目的时候用了百度开源的可视化JS工具-Echarts,可视化的类型有很多种,但JS库必须导入Java Web项目运行时,通常使用更多的Python,所以我想知道是否有一个结合Python和Echarts的轮子。谷歌之后,我找到了一个由中国人开发的Echarts和Python相结合的轮子:pyecharts,以下是pyecharts的一些使用细则:

安装
用Win环境写这篇文章,首先打开命令行(win+R),输入:
pipinstallpyecharts
但笔者发现,由于墙体原因,下载时会出现断线和速度过慢的问题,导致下载失败,因此建议通过清华镜像下载:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

上述信息的出现意味着下载成功,我们可以进行下一个实验!
使用实例
使用前要强调一点:python2.x和python3.在python3中,x编码问题.您可以将其视为unicode编码的默认,但在python2中.x不是默认的,因为它的bytes对象定义混乱,pycharts使用unicode编码来处理字符串和文件,所以当你使用python2时.x时,请务必将此代码插入上面:
from__future__importunicode_literals
现在让我们开始正式使用pycharts,这里我们直接使用官方数据:
柱状图-Bar
//导入柱状图-Bar
frompyechartsimportBar
//设置行名
columns=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
///设置数据
data1=[2.0,4.9,7.0,23.2,25.6,76.7,135.6,162.6,20.0,6.4,3.3]
data2=[2.6、5.9、9.0、26.4、28.7、70.7、175.6、18.7、18.8、6.0、2.3]
///设置柱状图的主标题和副标题
bar=Bar("柱状图","一年的降水量和蒸发量")
//添加柱状图的数据和配置项目
bar.add("降水量",columns,data1,mark_line=["average"],mark_point=["max","min"])
bar.add("蒸发量",columns,data2,mark_line=["average"],mark_point=["max","min"])
///生成本地文件(默认为.html文件)
bar.render()运行结果如下:

几行简单的代码可以很好的可视化数据,而且还是动态的。在这里,我们还需要安利的jupyter,pyecharts在v0.1.9.从2版开始,直接在jupyter上调用实例(比如直接在上面调用bar)就可以直接表示图表,非常方便。
作者数了数。目前,pyecharts上的图表大约支持20种。接下来,我们将使用上述数据生成几个常用的数据挖掘图表示例:
饼图-Pie
//导入饼图Pie
frompyechartsimportPie
///设置主标题和副标题,标题设置在中间,宽度为900
pie=Pie("饼状图","一年的降水量和蒸发量",title_pos='center',width=900)
//添加数据,将坐标位置设置为[25,50],取消上述colums选项的显示
pie.add("降水量",columns,data1,center=[25,50],is_legend_show=False)
//添加数据,设置坐标位置为[75,50],取消显示上面的colums选项,显示label标签
pie.add("蒸发量",columns,data2,center=[75,50],is_legend_show=False,is_label_show=True)
//保存图表
pie.render()
箱体图-Boxplot
//导入箱型图Boxplott
frompyechartsimportBoxplot
boxplot=Boxplot("箱形图","一年的降水量和蒸发量")
x_axis=['降水量','蒸发量']
y_axis=[data1,data2]
//prepare_data方法可以将数据转换为嵌套[min,Q1,median(orQ2),Q3,max]
yaxis=boxplot.prepare_data(y_axis)
boxplot.add("天气统计",x_axis,_yaxis)
boxplot.render()
相关推荐:Python视频教程
折线图-Line
frompyechartsimportLine
line=Line("折线图","一年的降水量和蒸发量")
//is_label_show设置上面的数据是否显示
line.add("降水量",columns,data1,is_label_show=True)
line.add("蒸发量",columns,data2,is_label_show=True)
line.render()
雷达图-Rader
frompyechartsimportRadar
radar=Radar("雷达图","一年的降水量和蒸发量")
//因为雷达图传入的数据必须是多维数据,所以这里需要进行处理。
radar_data1=[2.0,4.9,7.0,23.2,25.6,76.7,135.6,162.6,20.0,6.4,3.3]
radar_data2=[2.6、5.9、9.0、26.4、28.7、70.7、175.6、18.7、18.7、18.8、6.02.3]]
///设置column值,为了雷达图更直观,这里的月值设置不同
schema=[
("Jan",5),("Feb",10),("Mar",10),
("Apr",50),("May",50),("Jun",200),
("Jul",200),("Aug",200),("Sep",50),
("Oct",50),("Nov",10),("Dec",5)
]
///传入坐标
radar.config(schema)
radar.add("降水量",radar_data1)
//一般默认为相同的颜色,这里需要设置item的颜色,以便于区分
radar.add("蒸发量",radar_data2,item_color="#1C86EE")
radar.render()
散点图-scatter
frompyechartsimportScatter
scatter=Scatter("散点图","一年的降水量和蒸发量")
//xais_name设置横坐标名称。由于显示问题,还需要设置y轴名称与y轴的距离
scatter.add("降水量和蒸发量的散点分布",data1,data2,xaxis_name="降水量",yaxis_name="蒸发量",
yaxis_name_gap=40)
scatter.render()
图表布局 Grid
由于标题和图表属于两个不同的控制器,因此必须设置下图Line的标题位置,否则会出现标题重叠的bug。
frompyechartsimportGrid
///设置折线图标题位置
line=Line("折线图","一年的降水量和蒸发量",title_top="45%")
line.add("降水量",columns,data1,is_label_show=True)
line.add("蒸发量",columns,data2,is_label_show=True)
grid=Grid()
///设置两个图表的相对位置
grid.add(bar,grid_bottom="60%")
grid.add(line,grid_top="60%")
grid.render()
frompyechartsimportOverlap
overlap=Overlap()
bar=Bar("柱状图-折线图合并","一年的降水量和蒸发量")
bar.add("降水量",columns,data1,mark_point=["max","min"])
bar.add("蒸发量",columns,data2,mark_point=["max","min"])
overlap.add(bar)
overlap.add(line)
overlap.render()总结
(1)导入相关图表包
(2)设置图表的基础,创建图表对象
(3)使用add()方法设置数据输入和图表(print__)echarts_options()输出所有可配置项)
(4)使用render()方法保存图表
