当前位置 博文首页 > 基于python的matplotlib制作双Y轴图

    基于python的matplotlib制作双Y轴图

    作者:无敌咸鱼王 时间:2021-07-03 18:36

    目录
    • 一、函数介绍
    • 二、实际应用
      • 2.1 实验数据展示
      • 2.2 代码实现:
      • 2.3 最终结果显示

    一、函数介绍

    函数:twin()函数
    含义:表示共享x轴,共享表示的就是x轴使用同一刻度

    二、实际应用

    2.1 实验数据展示

    数据表的名称:600001SH.xlsx

    2.2 代码实现:

    文章里使用到了Subplot()函数

    # 导入相关数据包
    import matplotlib.pyplot as plt
    import pandas as pd
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体
    plt.rcParams['axes.unicode_minus'] = False  # 设置正负号
    # 读取数据
    path='600001SH.xlsx'
    df = pd.read_excel(path)
    # 将日期设置为列索引
    df.index=pd.to_datetime(df['日期'])
    # 得到2月的数据
    feb_days = df['2015-02']
    # 第一步,完成简单的单轴
    x = feb_days.index.tolist()  # 获取到X轴日期数据
    y_1 = feb_days['开盘价(元)'].values.tolist()  # Y轴数据1
    y_2 = feb_days['成交量(股)'].values.tolist()  # Y轴数据2
    # 设置画板
    fig = plt.figure(figsize=(10,8),dpi=80)
    # 添加Axes坐标轴实例,创建1个画板
    ax = fig.add_subplot(111)  
    # 制作第一条折现
    lin1 = ax.plot(x, y_1, label='开盘价', color='r')
    ax.set_xlabel('日期')
    # 设置Y轴1
    ax.set_ylabel('开盘价(元)')
    # 使用twinx()函数实现共用一个x轴
    ax2 = ax.twinx()
    # 制作第二条折现
    lin2 = ax2.plot(x, y_2, label='成交量', color='green')
    # 设置Y轴2
    ax2.set_ylabel('成交量(股)')
    # 合并图例
    lines = lin1+lin2
    labs = [label.get_label() for label in lines]
    ax.legend(lines,labs)
    # 增加网格线
    ax.grid()
    plt.show()
    

    2.3 最终结果显示

    jsjbwy
    下一篇:没有了