我努力了,但是我在這裏遇到了matplotlib。請忽略,mpl文檔對我有點困惑。我的問題涉及:'重新排序'/適應ticks的matshow矩陣圖
我畫一個對稱的N * N矩陣
D
與matshow
功能。這樣可行。我想要做同樣的事情,只是順序不同的(第n)項
D
D = [:,neworder] D = [neworder,:]
現在,我該如何使蜱重現此neworder,最好使用另外MaxNLocator
?
據我瞭解...
set_xticklabels
通過訂單分配獨立的,其中蜱設置標籤的蜱,? set_xticks
(mpl文檔:'設置與滴答清單x記號')在這裏我真的不知道它是什麼。有人可以解釋它嗎?我不知道,這些功能對我來說是否有用。也許即使使用普通的xy圖和matshow,情況也不同。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.gca()
D = np.arange(100).reshape(10,10)
neworder = np.arange(10)
np.random.shuffle(neworder)
D = D[:,neworder]
D = D[neworder, :]
# modify ticks somehow...
ax.matshow(D)
plt.show()
提到保羅的回答,我想我是這樣試過的。使用neworder
來定義位置並將其用於標籤,我將plt.xticks(neworder, neworder)
添加爲tick-modifier。例如與neworder = [9 8 4 7 2 6 3 0 1 5]
我得到的是這個
標籤的順序是正確的,但滴答不是。標籤應獨立顯示正確的元素,獨立於,其中設置了滴答。那麼錯誤在哪裏?
問題是,它給了我5個刻度線(像圖片上的x軸)。在處理[0,1,2,3,4,5,6,7,8,9]時,記號設置爲[0,2,4,6,8],顯示新訂單[1:5]作爲標籤。我需要它顯示10個刻度,或者如果是5,然後將它標記爲neworder [0,2,4,6,8] ... – embert
@talkturkey:從頭開始學習示例時,我會看到相同的行爲。在ipython中,直到我發出'plt.draw()'('plt.show()'不會剪切它),我纔看到實際的地圖。然後需要用上述兩個命令重新勾選這些軸。編輯我的答案來反映這一點。你能證實你的作品嗎? – spinup
第一個問題已解決。事實上,我只是把剔修改爲_before_'matshow'。現在可以將它與定位器結合起來, G。最多20個滴答聲顯示_correct_標籤? – embert