我正在試着做出這樣的圖。繪圖矩陣,每個都是數字矩陣的可視化。如何將多個matshow()結果放在一個數字中?
我想代碼看起來應該是這樣的:使用PyPlot
figure()
for i in 1:100
subplot(10, 10, i)
matshow(rand(10, 10))
end
但該地塊將在新窗口中獨立蹦出來,而不是在單獨的部分同樣的數字。我做錯了什麼?
在此先感謝您的時間!
我正在試着做出這樣的圖。繪圖矩陣,每個都是數字矩陣的可視化。如何將多個matshow()結果放在一個數字中?
我想代碼看起來應該是這樣的:使用PyPlot
figure()
for i in 1:100
subplot(10, 10, i)
matshow(rand(10, 10))
end
但該地塊將在新窗口中獨立蹦出來,而不是在單獨的部分同樣的數字。我做錯了什麼?
在此先感謝您的時間!
聲明:我絕對沒有Julia的經驗。所以可能有一些關於以下我不知道的警告。
matplotlib.pyplot.matshow(A, fignum=None, **kw)
顯示陣列作爲一個新的數字窗口矩陣。 [...]
fignum:
[無|整數| False]
默認情況下,matshow()用自動編號創建一個新的數字窗口。如果fignum以整數形式給出,則創建的數字將使用此數字。由於matshow()嘗試將圖形寬高比設置爲數組的其中一個,因此如果提供已有數字的數字,可能會發生奇怪的事情。 如果fignum
爲False或0,則不會創建新的數字窗口。因此
兩個可能的選擇可能是:
使用fignum=false
figure()
for i in 1:100
subplot(10, 10, i)
matshow(rand(10, 10), fignum=false)
end
使用imshow
代替matshow
(因爲imshow
不會默認創建一個新的人物)
figure()
for i in 1:100
subplot(10, 10, i)
imshow(rand(10, 10))
end
我使用pyplot首選方法是避免使用「神奇」的是猜測你想要使用的插曲。因此,我通常會做這樣的事情:
figure()
for i in 1:100
ax = subplot(10, 10, i) # assign ax to that subplot
ax[:matshow](rand(10, 10)) # call plot method on that specific subplot
end
或更大的靈活性,你可以這樣做:
f,axs=subplots(10,10) # create all the subplots at the start
for ax in axs # instead use `for (i,ax) enumerate(axs)` if you need the index)
ax[:matshow](rand(10,10)) # plot on each iteration
end
你可能有興趣在回答這個類似的問題,今天也問(但地塊相當比PyPlot):https://stackoverflow.com/questions/46335316/generating-subplots-of-heatmaps-in-julia-lang –