我的Python心路历程 第十期 (10.4 股票实战之可视化figure篇)
本文主要是关注matlab实现一个figure画多个子图,和多个figure画多个图。
首先是多个figure画多个图,代码如下:
#多个figure同时显示
#第一个figure
plt.figure(1)
# 苹果和微软的股票价格对比
Apple['Adj Close'].plot(legend=True, label='Apple.Inc')
Google['Adj Close'].plot(legend=True, label='Google')
#plt.show()
#第二个figure
plt.figure(2)
# 交易量对比
Apple['Volume'].plot(legend=True, label='Apple.Inc')
Google['Volume'].plot(legend=True, label='Google')
# plt.show()
# 第三个figure
plt.figure(3)
# 股票价格极差对比
Apple['high-low'] = Apple['High'] - Apple['Low']
Google['high-low'] = Apple['High'] - Apple['Low']
Apple['high-low'].plot(label='Apple.Inc')
Google['high-low'].plot(label='Google')
# plt.show()
# 第四个figure
plt.figure(4)
# daily return(每天变化情况)
Apple['daily return'] = Apple['Adj Close'].pct_change()
Apple['daily return'].plot(label='Apple.Inc', figsize=(15, 8), linestyle='--', marker='o')
# plt.show()
# 第五个figure
plt.figure(5)
Apple['daily return'].plot(label='Apple.Inc', kind='hist')
# plt.show()
# 现实图表
plt.show()
运行效果如下图所示(部分叠加):
其次是一个figure画多个子图,代码如下:
#历史趋势分析,基于苹果和谷歌的历史数据
def hisDataAns():
#--此处从已经下载的CSV文件中读取数据来获取数据源,也可以参见上面对应函数中的代码下载最新数据
# 获取绝对路径,data为当前文件夹
curpath = os.path.join(os.path.dirname(__file__), 'data')
apple_file_path = os.path.join(curpath, 'AAPL.csv')
google_file_path = os.path.join(curpath, 'GOOG.csv')
# 获取数据from csv文件中 [Date Open High Low Close Adj Close Volume]
Apple = pd.read_csv(apple_file_path)
Google = pd.read_csv(google_file_path)
# --此处从已经下载的CSV文件中读取数据来获取数据源,也可以参见上面对应函数中的代码下载最新数据
#一个figure画多个图
plt.figure(figsize=(15,8))
plt.subplot(2, 3, 1) #% subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
# 苹果和微软的股票价格对比
Apple['Adj Close'].plot(legend=True, label='Apple.Inc')
Google['Adj Close'].plot(legend=True, label='Google')
#plt.show()
plt.subplot(2, 3, 2) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
# 交易量对比
Apple['Volume'].plot(legend=True, label='Apple.Inc')
Google['Volume'].plot(legend=True, label='Google')
# plt.show()
plt.subplot(2, 3, 3) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
# 股票价格极差对比
Apple['high-low'] = Apple['High'] - Apple['Low']
Google['high-low'] = Apple['High'] - Apple['Low']
Apple['high-low'].plot(label='Apple.Inc')
Google['high-low'].plot(label='Google')
# plt.show()
plt.subplot(2, 3, 4) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
# daily return(每天变化情况)
Apple['daily return'] = Apple['Adj Close'].pct_change()
Apple['daily return'].plot(label='Apple.Inc', linestyle='--', marker='o') #, figsize=(15, 8) 设置尺寸大小
# plt.show()
plt.subplot(2, 3, 5) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
Apple['daily return'].plot(label='Apple.Inc', kind='hist')
# plt.show()
# 现实图表
plt.show()
return
遗憾的是最后一行只有两个图。
留个作业:可否将第四个图放大一点占用两个图位置呢?后面有机会试试看吧。
缺少第五个图的代码如下:
plt.subplot(2, 3, 4) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
# daily return(每天变化情况)
Apple['daily return'] = Apple['Adj Close'].pct_change()
Apple['daily return'].plot(label='Apple.Inc', linestyle='--', marker='o') #, figsize=(15, 8) 设置尺寸大小
# plt.show()
plt.subplot(2, 3, 6) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
Apple['daily return'].plot(label='Apple.Inc', kind='hist')
# plt.show()
# 现实图表
plt.show()
第四个图改变列数的运行效果如下:
plt.subplot(2, 3, 3) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
# 股票价格极差对比
Apple['high-low'] = Apple['High'] - Apple['Low']
Google['high-low'] = Apple['High'] - Apple['Low']
Apple['high-low'].plot(label='Apple.Inc')
Google['high-low'].plot(label='Google')
# plt.show()
plt.subplot(2, 2, 4) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
# daily return(每天变化情况)
Apple['daily return'] = Apple['Adj Close'].pct_change()
Apple['daily return'].plot(label='Apple.Inc', linestyle='--', marker='o') #, figsize=(15, 8) 设置尺寸大小
# plt.show()
plt.subplot(2, 3, 6) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
Apple['daily return'].plot(label='Apple.Inc', kind='hist')
# plt.show()
第四个图改变列数和编号的运行效果如下:
plt.subplot(2, 3, 3) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
# 股票价格极差对比
Apple['high-low'] = Apple['High'] - Apple['Low']
Google['high-low'] = Apple['High'] - Apple['Low']
Apple['high-low'].plot(label='Apple.Inc')
Google['high-low'].plot(label='Google')
# plt.show()
plt.subplot(2, 1, 2) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
# daily return(每天变化情况)
Apple['daily return'] = Apple['Adj Close'].pct_change()
Apple['daily return'].plot(label='Apple.Inc', linestyle='--', marker='o') #, figsize=(15, 8) 设置尺寸大小
# plt.show()
#plt.subplot(2, 3, 6) # % subplot(x, y, n)x表示显示的行数,y表示列数,n表示第几幅图片
#Apple['daily return'].plot(label='Apple.Inc', kind='hist')
# plt.show()
# 现实图表
plt.show()