matplotlib繪製雙座標軸(雙縱軸)

2021-10-09 06:40:35 字數 1316 閱讀 3518

import matplotlib.pyplot as plt

import numpy as np

plt.rcparams['font.sans-serif']=['simhei']#用來正常顯示中文標籤

plt.rcparams['axes.unicode_minus']=false#用來正常顯示負號

if __name__ == '__main__':

x=["2019-01", "2019-02", "2019-03", "2019-04", "2019-05", "2019-06", "2019-07", "2019-08", "2019-09", "2019-10", "2019-11", "2019-12"]

y1=np.random.randint(500,1000,12)

y2=[none]

for i in range(1,len(y1)):

fig, ax1 = plt.subplots()

plt.xticks(rotation=45)

ax1.bar(x, y1, color="blue", alpha=0.5, label="出貨量")

ax1.set_xlabel("月份")

ax1.set_ylabel("出貨量(噸)")

ax2 = ax1.twinx()

ax2.plot(x, y2, color="red", label="環比增長")

ax2.set_ylabel("環比增長")

fig.legend(loc="upper right", bbox_to_anchor=(1, 1), bbox_transform=ax1.transaxes)

plt.show()

結果:

1、ax1繪圖採用左側縱軸,ax2繪圖採用右側縱軸。

2、plt.xticks(rotation=45)使x軸刻度文字旋轉45度。

3、legend引數解釋(可能比較難理解):

bbox_to_anchor=(1, 1)表示圖例顯示在右上角。其中(0,1)-左上,(1,0)-右下,(0,0)左下。

bbox_transform=ax1.transaxes表示採用ax1的軸域座標系去確定位置。軸域座標系:(0,0)是軸域左下角,(1,1)是軸域右上角,和bbox_to_anchor引數對應。

loc="upper right"表示用圖例的右上角去對準圖例所在位置。

10 9 雙座標軸繪製

在實際的應用中,常常需要把同一自變數的兩個不同量綱 不同量級的函式量的變化同時繪製在同乙個圖窗中,例如在同一張圖中同時展示空間一點上的電磁波的幅度和相位隨時間的變化 不同時間內的降雨量和溫濕度的變化,matlab中的plotyy函式可以實現上述功能,其具體的語法格式如下 plotyy x1,y1,x...

matplotlib繪製等直線

利用contour contourf 描繪等值線 contourf 帶有填充效果 def fig2 y,x np.ogrid 2 2 200j,3 3 300j z x np.exp x 2 y 2 extent np.min x np.max x np.min y np.max y plt.fig...

Python使用matplotlib繪製三維曲線

本文主要演示如何使用matplotlib繪製三維圖形 如下 coding utf 8 import matplotlib as mpl from mpl toolkits.mplot3d import axes3d import numpy as np import matplotlib.pyplo...