0
我有兩組具有非常不同軸的條形圖中的數據集:一個非常負(-7500),另一個稍微正(+5)。Matplotlib條形圖:將兩個不同的y軸對齊
我怎樣才能讓兩個y軸對齊在0,但仍然是一個很好的大小?使用set_ylim
意味着你看不到第二個數據集。
我使用的是當前的代碼:
A165H = [-4915, -7037]
B167H = [-6927, -4105]
B186H = [-5597, 0]
CH =[0, 0]
ConH = [0, 0]
# Lists of dS values
A165S = [6.28,-4.91]
B167S = [-3.25, 6.7]
B186S = [3.93, 0]
CS = [0, 0]
ConS = [0, 0]
N1H = [A165H[0], B167H[0], B186H[0], CH[0], ConH[0]]
N1S = [A165S[0], B167S[0], B186S[0], CS[0], ConS[0]]
print(N1H)
print(N1S)
N2H = [A165H[1], B167H[1], B186H[1], CH[1], ConH[1]]
N2S = [A165S[1], B167S[1], B186S[1], CS[1], ConS[1]]
width = 0.35
fig, ax1 = plt.subplots()
ind = np.arange(len(N1H))
rects1 = ax1.bar(ind, N1H, width, color = 'b')
ax1.set_xticks(ind+width)
ax1.set_xticklabels(('A165', 'B167', 'B186', 'C', 'Con'))
ax1.set_ylabel('dH', color='b')
for tl in ax1.get_yticklabels():
tl.set_color('b')
ax2 = ax1.twinx()
rects2 = ax2.bar(ind + width, N1S, width, color = 'r')
ax2.set_ylabel('dS', color='r')
for tl in ax2.get_yticklabels():
tl.set_color('r')
plt.show()
這是我的標準圖像
編輯:使用
從this question的align_yaxis()
只顯示我的負值第二組數據:
可能重複的[Matplotlib軸有兩個scale共享來源](http://stackoverflow.com/questions/10481990/matplotlib-axis-with-two-scales-shared-origin) – tom
嘗試在該帖子中的第二個答案,你會得到完整的'ylim'(http ://stackoverflow.com/questions/10481990/matplotlib-axis-with-two-scales-shared-origin/26456731# 26456731) – tom
是的,我在編輯後才意識到 – Charlietrypsin