
水流图是面积图的一种形式,只是面积图的横坐标在图的最下方,而水流图的横坐标在图的中间位置,在横坐标的上下两边都有面积的变化,看上去像水流一样,因此叫做水流图。
今天跟大家分享如何利用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或者绿色向右的小箭头。
得到下图:

河流图及说明如下:
from pyecharts import ThemeRiver #导入Echarts绘图库
import pandas as pd #导入pandas用于读取excel数据
xlsfile= '河流图数据1.xlsx' #excel文件名
data=[] #备用空列表
df3=pd.read_excel(xlsfile) #读取excel数据
for eachone in range(len(df3.columns)-1): #循环读取每一列数据
data.extend([[i,j,df3.columns[eachone+1]] \
for i,j in zip(range(len(df3.index)),\
df3[df3.columns[eachone+1]])]) #将数据添加到data列表中
colors_list=['#FFA07A','#32CD32','#4169E1','#FAA460',\
'#F0E68C','#8c564b','#e377c2','#7f7f7f','#bcbd22','#17becf']#备用颜色列表
range_color=[]#颜色数据空列表
for i in range(len(df3.columns)-1):
range_color.append(colors_list[i%10])#填充颜色
river= ThemeRiver()
river.add([df3.columns[i+1] for i in range(len(df3.columns)-1)], data, \
is_label_show=
False,label_color=range_color,\
x_label=list(df3[df3.columns[0]]),x_name=df3.columns[0])#绘制主题河流图,传递自定义颜色列表
river.render()#在当前目录生成'render.html'文件,需手动用浏览器打开查看图片
保护版权人人有责
小编心血,拒绝盗图,如需转载,后台联系

·↑长按识别二维码关注 ↑·
微信号:专利分析可视化
推特帐号:IPinfographics