我的Python心路历程 第十期 (10.4 股票实战之可视化figure篇)

我的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

运行效果图如下所示:
我的Python心路历程 第十期 (10.4 股票实战之可视化figure篇)_第1张图片

遗憾的是最后一行只有两个图。

留个作业:可否将第四个图放大一点占用两个图位置呢?后面有机会试试看吧。

缺少第五个图的代码如下:

    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()

缺少第五个图的运行效果如下:
我的Python心路历程 第十期 (10.4 股票实战之可视化figure篇)_第2张图片

第四个图改变列数的运行效果如下:

    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()

第四个图改变列数的运行效果如下:
我的Python心路历程 第十期 (10.4 股票实战之可视化figure篇)_第3张图片

第四个图改变列数和编号的运行效果如下:

    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()

第四个图改变列数和编号的运行效果如下:
我的Python心路历程 第十期 (10.4 股票实战之可视化figure篇)_第4张图片

你可能感兴趣的:(python)