Py学习  »  Python

作图详解 | 利用Python绘制水流图

专利分析可视化 • 7 年前 • 2114 次点击  


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

今天跟大家分享如何利用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+1for 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


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/fJRFa9Cnx3
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/6688