基於python的matplotlib制作雙Y軸圖

一、函數介紹

函數: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 最終結果顯示

到此這篇關於基於python的matplotlib制作雙Y軸圖的文章就介紹到這瞭,更多相關python制作雙Y軸圖內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!