学习
实践
活动
工具
TVP
写文章

利用Python绘制水流图

水流图是面积图的一种形式,只是面积图的横坐标在图的最下方,而水流图的横坐标在图的中间位置,在横坐标的上下两边都有面积的变化,看上去像水流一样,因此叫做水流图。

今天跟大家分享如何利用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'文件,需手动用浏览器打开查看图片

保护版权人人有责

小编心血,拒绝盗图,如需转载,后台联系

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180202B1EVAD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券