2017-03-16 63 views
0

From this answer我知道如何繪製顯示數組值的圖像。 但是如何顯示數組中每個元素的i,j索引,而不是數值本身?Matplotlib:imshow中的顯示元素索引

這是值是如何在圖像印刷:

from matplotlib import pyplot 
import numpy as np 

grid = np.array([[1,8,13,29,17,26,10,4],[16,25,31,5,21,30,19,15]]) 

fig1, (ax1, ax2)= pyplot.subplots(2, sharex = True, sharey = False) 
ax1.imshow(grid, interpolation ='none', aspect = 'auto') 
ax2.imshow(grid, interpolation ='bicubic', aspect = 'auto') 
for (j,i),label in np.ndenumerate(grid): 
    ax1.text(i,j,label,ha='center',va='center') 
    ax2.text(i,j,label,ha='center',va='center') 
pyplot.show() 

enter image description here

現在,你如何讓imshow情節(0,0)在左上角,而不是價值1?你怎麼在

for (j,i),label in np.ndenumerate(grid): 
     ax1.text(i,j,label,ha='center',va='center') 
     ax2.text(i,j,label,ha='center',va='center') 
+0

Appologies如果我相信,但這似乎考慮到你的Python得分很瑣碎的問題。你怎麼沒有爲自己工作? – kazemakase

+0

我欣賞你的提問,但你不必評價。我的Python分數是由其他同行分配給我的,就像你的分數一樣。你知道Python世界是巨大的,掌握它需要一段時間。人們,特別是如果他們通過試圖解決他們在自己的領域中所遇到的問題來學習語言,他們會偏向一個領域而不是另一個領域。 – FaCoffee

+0

對不起,我的意思是沒有冒犯,也沒有打算質疑你的聲譽。相反,我真的很好奇,是什麼原因阻止了你應用一點點試錯?爲什麼,它幾乎看起來像是從另一個答案複製了代碼,並希望其他人爲你調整它。我不希望有經驗的社區成員這樣做,所以我只需要問。 – kazemakase

回答

1

改變你如何在左上角,而不是值1 imshow情節(0,0)?

這個問題的天真的答案是text(i,j,'(0,0)', ...,其中每個元素(0,0)

我想這是你真正想要的:

from matplotlib import pyplot 
import numpy as np 

grid = np.array([[1,8,13,29,17,26,10,4],[16,25,31,5,21,30,19,15]]) 

fig1, (ax1, ax2)= pyplot.subplots(2, sharex = True, sharey = False) 
ax1.imshow(grid, interpolation ='none', aspect = 'auto') 
ax2.imshow(grid, interpolation ='bicubic', aspect = 'auto') 
for (j, i), _ in np.ndenumerate(grid): 
    label = '({},{})'.format(j, i) 
    ax1.text(i,j,label,ha='center',va='center') 
    ax2.text(i,j,label,ha='center',va='center') 
pyplot.show() 

enter image description here