#导入需要的程序包
import pandas as pd
import seaborn as sns

"""
Explanation: 新手教程—Seaborn库使用示例
Seaborn是Python常用的统计数据可视化库，以下内容简单介绍Seaborn如何使用。
End of explanation
"""


# 获取600196.XSHG的2015年01月的日级数据, 只获取open+close字段
df = get_price('600196.XSHG', start_date='2014-01-01', end_date='2015-01-31', frequency='daily', fields=['open','close']) 
returns = df.pct_change().dropna()
sns.distplot(returns.iloc[:,0:1])

"""
Explanation: 股票收益曲线示例
End of explanation
"""


pingan = get_price('000001.XSHE', start_date='2014-01-01', end_date='2015-02-01', frequency='daily', fields=['open'])
fuxing = get_price('600196.XSHG', start_date='2014-01-01', end_date='2015-02-01', frequency='daily', fields=['open'])

returns_pingan = pingan.pct_change().dropna()
returns_fuxing = fuxing.pct_change().dropna()

sns.jointplot(returns_pingan['open'], returns_fuxing['open'], kind='reg', size=12)

"""
Explanation: 股票相关性分析
两只股票的相关性分析
我们可以比较不同股票的相关性，通过线性回归，画出不同股票的拟合曲线、置信区间（阴影区域）、皮尔森回归系数以及P值。
End of explanation
"""


df = get_price(get_industry_stocks('A01'), fields=('close',))['close']
df

df1 = df.iloc[:,0:5]
df1

"""
Explanation: 从以上各图，可以分析两只股票之间是否存在一个可能的投资机会，如果散点均匀分布在直线周围，表明两个股票有较强的相关性。
多支股票相关性分析
同一板块的股票相关性较强，我们以农业板块（A01）的股票作为示例分析多支股票的相关性。
End of explanation
"""


returns = df1.pct_change().dropna()
sns.distplot(returns.iloc[:,0:1])

"""
Explanation: 使用pct_change()计算收益率，使用dropna去除缺失值，使用distplot画出直方分布图。
End of explanation
"""


sns.violinplot(returns,size=24)

"""
Explanation: 如果有多组数据需要通过统计分布图进行比较，可以使用violinplot得到小提琴图。
End of explanation
"""


sns.pairplot(returns, diag_kind='kde', size=2.4)

"""
Explanation: 使用pairplot画出散点图，通过散点图分析两两之间的关系
End of explanation
"""


sns.heatmap(returns.corr())

"""
Explanation: 更多相关性分析方法
我们可以通过使用heatmap更系统地探索相关性
End of explanation
"""


sns.clustermap(returns.corr())

sns.clustermap?

"""
Explanation: 还可以通过clustermap画出聚类图，将相近的聚成一类；您可以通过查阅机器学习相关书籍了解更多过关于聚类的信息。
End of explanation
"""


