本文是基于StackAbuse的一篇讲解Seaborn的文章上编写。 附示例及实现代码,可直接前往BigQuant人工智能量化投资平台一键克隆代码进行实践研究。代码链接见文末。
简介
在本文中,我们将研究Seaborn,它是Python中另一个非常有用的数据可视化库。Seaborn库构建在Matplotlib之上,并提供许多高级数据可视化功能。
尽管Seaborn库可以用于绘制各种图表,如矩阵图、网格图、回归图等,但在本文中,我们将了解如何使用Seaborn库绘制分布和分类图。在本系列的第二部分中,我们将了解如何绘制回归图、矩阵图和网格图。
下载Seaborn库
我们可以通过几种方式下载seaborn库。如果您正在为Python库使用pip安装程序,您可以执行以下命令来下载这个库:
pip install seaborn
或者,如果您正在使用Python的Anaconda发行版,您可以使用以下命令来下载seaborn库:
conda install seaborn
在BigQuant平台上,你可以跳过这一步,直接在策略编写中import seaborn,即可使用
数据集
我们选取财报数据17年到19年的数据进行绘制,首先在策略模板中输入如下代码:
import numpy as np
import pandas as pd
import seaborn as sns
df = DataSource('financial_statement_CN_STOCK_A').read(start_date='2017-01-01',end_date='2019-01-02')
#删除Na值,否则后续绘图会报错,在进行数据挖掘时,数据清洗也同样十分重要
df = df.dropna()
df.head()
'df.head()'显示了df的前五行:
分布图
sns.distplot(df['fs_roe'])
这里绘制的是各个股票的净资产收益率(fs_roe),结果如下:
联合分布图
jointplot()用于显示各列的相互分布。您需要向jointplot传递三个参数。第一个参数是要在x轴上显示数据分布的列名。第二个参数是要在y轴上显示数据分布的列名。最后,第三个参数是数据帧的名称。
我们来画一个净资产收益率(fs_roe)和总资产报酬率 (TTM)(fs_roa_ttm)的联合分布图看看能不能找到两者之间的关系,代码如下:
# 这里kind='reg'表示在画完连接图后,做出两者之间的线性关系
sns.jointplot(x='fs_roe', y='fs_roa_ttm', data=df,kind='reg')
<