社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

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


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

今天跟大家分享如何利用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
 
1984 次点击