1
我希望你們其中一個能夠提供幫助。我有一個與一個y軸值和一個x軸對應這些y值的情節。我想在圖的右側添加第二個y軸。將出現在第二個y軸上的值通過第一個y軸值通過某種關係確定:例如,y2可能是y2 = y1**2 - 100
。如何製作第二個y軸,其值由y1值確定,以便y2值與y軸上的y1值正確對齊?添加與第一個y軸相關的第二個y軸
我希望你們其中一個能夠提供幫助。我有一個與一個y軸值和一個x軸對應這些y值的情節。我想在圖的右側添加第二個y軸。將出現在第二個y軸上的值通過第一個y軸值通過某種關係確定:例如,y2可能是y2 = y1**2 - 100
。如何製作第二個y軸,其值由y1值確定,以便y2值與y軸上的y1值正確對齊?添加與第一個y軸相關的第二個y軸
添加第二個y軸可以通過創建雙軸,ax2 = ax.twinx()
完成。 該軸的刻度可以使用其極限值ax2.set_ylim(y2min, y2max)
進行設置。 y2min, y2max
的值可以使用一些已知的關係(例如作爲函數實現)從左軸的極限值來計算。
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(0)
x = np.linspace(0,50,101)
y = np.cumsum(np.random.normal(size=len(x)))+20.
fig, ax = plt.subplots()
ax2 = ax.twinx()
ax.plot(x,y, color="#dd0011")
ax.set_ylabel("Temperature [Celsius]")
ax2.set_ylabel("Temperature [Fahrenheit]")
# set twin scale (convert degree celsius to fahrenheit)
T_f = lambda T_c: T_c*1.8 + 32.
# get left axis limits
ymin, ymax = ax.get_ylim()
# apply function and set transformed values to right axis limits
ax2.set_ylim((T_f(ymin),T_f(ymax)))
# set an invisible artist to twin axes
# to prevent falling back to initial values on rescale events
ax2.plot([],[])
plt.show()