社区所有版块导航
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金融应用之利用Plotnine作图(三)——堆积柱状图

西瓜财经资讯 • 4 年前 • 963 次点击  

NO.260

2020.01.19

工欲善其事,必先利其器


//


  - 前言 -  

◆ ◆ ◆ ◆


今天,小咖带大家利用Python的plotnine制作堆积柱状图。


R语言有一个强大的绘图工具ggplot2,而plotnine则是Python中的ggplot2。今天,小咖就带大家继续来学习plotnine这一工具包,并制作简单的堆积柱状图,最终将得到如下效果图。

资料来源:西瓜财经资讯



  - Plotnine制作柱状图 -  

◆ ◆ ◆ ◆


第一步:安装各种包

资料来源:西瓜财经资讯


安装plotnine是本文的重点。在cmd中输入pip install plotnine进行安装,如果报错则可根据报错原因从网络查询解决方案。但经过反复试验,发现报错主要源于python版本不支持plotnine的问题。因此,通过卸载spyder然后从如下网站下载最新版本spyder便可以解决。


https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D

资料来源:西瓜财经资讯


第二步:导入数据

资料来源:西瓜财经资讯


(1)首次使用Python的wind接口时,需要进行如下操作:wind客户端——量化——修复插件——修复Python接口。


(2)在导入“包”时已经导入了Windpy。


(3)语句需要以w.start() 开始,否则所有与wind相关的程序都无法运行,但只要运行一次后不用重复运行。


(4)通过edb函数,得到提取GDP构成数据。

(经过对wind的探索,发现通过增加"error,"和“usedf=True”可以直接生成dateframe)。

资料来源:西瓜财经资讯


第三步:数据处理

资料来源:西瓜财经资讯


(1)对数据表进行复制、融合、列命名等一系列操作。


(2)对不同产业的GDP数据进行融合,使用melt函数如下,最终将得到下表。


data=pd.melt(data,id_vars='日期')    

资料来源:西瓜财经资讯


第四步:图形制作

资料来源:西瓜财经资讯


(1)ggplot()。底层绘图工具,用于创建图象,传入数据来源和映射。如果在映射里面添加fill参数,可以将数据以颜色区分。


(2)geom_XX()。设定几何图层,如柱状图,散点图,直方图,折线图等等。

资料来源:网络


(3)geom_text。设置标签文本,同样需要添加映射。


(4)scale。度量调整,调整颜色、大小、形状等。

资料来源:网络


(5)Labels。标签调整。

资料来源:网络


(6)Theme。主题设定,调整图表的细节,包括图表背景颜色、网格线的间隔和颜色、中文设置、图例显示、坐标轴标签字体及角度等。注意,如果图形中有中文字符,需要加入如下语句,否则将无法显示中文。

text=element_text(family = "SimHei")


(7)coord_flip() 。加入此语句可以将纵向直方图转换为横向直方图。


(8)通过调整颜色参数,得到如下图形结果。


注意:各图表输入信息用“+”来连接。

资料来源:西瓜财经资讯

资料来源:西瓜财经资讯

资料来源:西瓜财经资讯

资料来源:西瓜财经资讯


资料来源:

https://blog.csdn.net/weixin_42628425/article/details/89786545


  - 后言 -  

◆ ◆ ◆ ◆

使用如下语句可以设定图形配色,配色名称见图。

scale_fill_brewer(palette='GnBu')

资料来源:网络










end


公众号:西瓜财经资讯

撰稿人:安静的金融美女子


记得点个在看哦

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/106462
 
963 次点击