還有其他問題,但似乎沒有涵蓋我的確切問題/他們的解決方案沒有「糾正」我的問題。Matplotlib與yticklabels和yticks雙向對齊
import matplotlib.pyplot as plt
calendar = [[1,0,0,1,1,0,1],[0,0,1,1,1,0,1]]
fig, ax = plt.subplots()
namelist = ['alpha','beta']
yticks = [n for n in range(len(namelist))]
ax.set_yticks(yticks)
ax.set_yticklabels(namelist)
ax2 = ax.twinx()
ax2.set_yticks(ax.get_yticks())
ax2.set_yticklabels(['gamma','delta'])
im = ax.imshow(calendar, interpolation='none', cmap='summer')
plt.show()
當然,上的是隻是一個很簡單的版本,但它應該是足夠的,看問題:當註釋掉兩個「AX2線」的情節是我想要的,但加時第二個Y軸的情節調整,就像我不想要它。我希望alpha/beta與伽瑪/三角洲處於同一高度(這樣就沒有剩餘空白空間了),但現在我失敗了很長一段時間。我試過了get_yticks()
函數(正如一些類似的問題中提出的那樣),但它沒有幫助。 在此先感謝!
編輯:一個小細節:從某種意義上說,解決方案應該是「可擴展的」,它應該在前面處理更多的y值(alpha,beta,delta,...)。編輯2 :(我不確定發佈一個新問題是否有用,所以我只是問這裏:)我現在試圖添加一個網格。我再次嘗試了很多,但似乎沒有任何幫助,至多我可以得到一個y軸網格。請檢查下面的代碼(並嘗試與這些行註釋掉一樣!):
import matplotlib.pyplot as plt
calendar = [[1,0,0,1,1,0,1],[0,0,1,1,1,0,1]]
fig, ax = plt.subplots()
namelist = ['alpha','beta']
yticks = [n for n in range(len(namelist))]
ax.set_xticks([num for num in range(len(calendar[0]))])
ax.set_xticks([num-0.5 for num in range(len(calendar[0]))],minor=True)
ax.set_yticks(yticks)
ax.set_yticks([num-0.5 for num in range(len(namelist))],minor=True)
ax.set_yticklabels(namelist)
im = ax.imshow(calendar, interpolation='none', cmap='summer')
ax.set_adjustable('box-forced')
ax.xaxis.grid(which='major',alpha=1,color='k',lw=2)
ax.xaxis.grid(which='minor',alpha=1,color='k',lw=2)
ax.yaxis.grid(which='minor',alpha=1,color='k',lw=2)
#ax2 = ax.twinx()
#ax2.set_yticks(ax.get_yticks())
#ax2.set_yticklabels(['gamma','delta'])
#im2 = ax2.imshow(calendar, interpolation='none', cmap='summer')
#ax2.set_adjustable('box-forced')
plt.show()
我怎樣才能讓表格顯示了?這裏是一張圖片(沒有ax2)。基本上不應該給我的代碼完全相同,但第二個標籤在右邊?
謝謝,這有助於我已經但它仍然沒有解決綠色/黃色部分上方和下方的空白問題。 – famfop
@famfop哦,我明白了,給我一分鐘... –
謝謝!很好的答案:簡短和點! – famfop