水流图是面积图的一种形式,只是面积图的横坐标在图的最下方,而水流图的横坐标在图的中间位置,在横坐标的上下两边都有面积的变化,看上去像水流一样,因此叫做水流图。
今天跟大家分享如何利用Pyecharts制作水流图。
Pyecharts是Echarts的python版本,允许我们使用python语言通过Echarts图库绘图。Echarts在之前我们也已经介绍过,它是百度开发的商业级图表绘制JS库,包含了很多惊艳效果的图表。
Echarts的python版本如何使用呢?一起来试试吧。
注:以下操作需要连接互联网。
STEP 1: 安装Pyecharts
1)在Anaconda环境下安装Pyecharts。在开始菜单中打开Anaconda控制台“Anaconda Prompt”:
2)在控制台里输入命令“pip install pyecharts”,回车:
3)安装成功的界面如下:
至此,Anaconda环境中就包含了Pyecharts。
Pyecharts运行后不直接显示图片,而是在当前文件夹下生成一个“render.html”文件,使用浏览器打开这个文件即可看到图片。
STEP 2:修改Pyecharts时间轴显示代码
Pyecharts默认的河流图时间轴的显示不美观,我们对源代码进行修改,方法如下:
找到Anaconda的安装路径,(若装在D盘,即,打开D:\Anaconda3\Lib\site-packages\pyecharts\charts文件夹),首先备份themeriver.py文件(复制原文件,在同一目录下粘贴即可),然后直接用本文提供的修改好的 themeriver.py(百度网盘:https://pan.baidu.com/s/1i6BNpYH 密码:zVN0)文件覆盖原文件即可。
STEP 3:准备表格
按照如下格式建立excel表格:
STEP 4:修改程序
该步与之前的Python作图步骤相同:
1)将文末的程序复制粘贴至spyder中的源程序编辑器(单击file,new file,跳出一个新文件)。
2)适应性的修改程序,使其与待输入的excel表格名称保持一致:
3)生成图表
保存,单击F5或者绿色向右的小箭头。
得到下图:
河流图及说明如下:
frompyechartsimportThemeRiver#导入Echarts绘图库
importpandasaspd#导入pandas用于读取excel数据
xlsfile='河流图数据1.xlsx'#excel文件名
data=[]#备用空列表
df3=pd.read_excel(xlsfile)#读取excel数据
foreachoneinrange(len(df3.columns)-1):#循环读取每一列数据
data.extend([[i,j,df3.columns[eachone+1]] \
fori,jinzip(range(len(df3.index)),\
df3[df3.columns[eachone+1]])])#将数据添加到data列表中
colors_list=['#FFA07A','#32CD32','#4169E1','#FAA460',\
'#F0E68C','#8c564b','#e377c2','#7f7f7f','#bcbd22','#17becf']#备用颜色列表
range_color=[]#颜色数据空列表
foriinrange(len(df3.columns)-1):
range_color.append(colors_list[i%10])#填充颜色
river= ThemeRiver()
river.add([df3.columns[i+1]foriinrange(len(df3.columns)-1)], data, \
is_label_show=False,label_color=range_color,\
x_label=list(df3[df3.columns[]]),x_name=df3.columns[])#绘制主题河流图,传递自定义颜色列表
river.render()#在当前目录生成'render.html'文件,需手动用浏览器打开查看图片
保护版权人人有责
小编心血,拒绝盗图,如需转载,后台联系
领取专属 10元无门槛券
私享最新 技术干货