我想製作4個imshow
子圖但它們都共享相同的色圖。 Matplotlib根據矩陣的條目自動調整色彩圖上的比例。例如,如果其中一個矩陣的所有條目都爲10,另一個矩陣的條目全部爲5,並且我使用Greys
色彩映射表,那麼我的一個子圖應該是全黑的,另一個應該是完全灰色的。但他們都變成了完全黑人。如何使所有子圖在色圖上共享相同的比例尺?Imshow具有相同色條的子圖
回答
要得到這個正確的圖像,你需要把所有圖像的亮度等級都一樣,否則顏色就沒有意義了。爲此,請使用imshow()
的參數vmin
和vmax
,並確保它們對於所有圖像都是相同的。
例如,如果你想顯示的值的範圍從0到10,可以使用以下命令:
import pylab as plt
import numpy as np
my_image1 = np.linspace(0, 10, 10000).reshape(100,100)
my_image2 = np.sqrt(my_image1.T) + 3
subplot(1, 2, 1)
plt.imshow(my_image1, vmin=0, vmax=10, cmap='jet', aspect='auto')
plt.subplot(1, 2, 2)
plt.imshow(my_image2, vmin=0, vmax=10, cmap='jet', aspect='auto')
plt.colorbar()
不是很漂亮,因爲第二軸更窄,請參閱http://stackoverflow.com/questions/13784201/matplotlib-2-subplots-1-colorbar而不是 –
@RuggeroTurra是的,但這是因爲'方面='auto''並且可以通過改變子圖空間(或者例如gridspec)進行調整。在接受的答案中,您將顏色條連接起來也不像軸線那麼高,所以仍然需要進行一些調整。 – tiago
這可能是因爲你不知道事先您的數據範圍,但您可能知道它們以某種方式兼容。在這種情況下,您可能更願意讓matplotlib爲第一個繪圖選擇這些範圍,併爲剩餘的繪圖使用相同的範圍。這是你如何做到的。關鍵是要得到極限properties()['clim']
import numpy as np
import matplotlib.pyplot as plt
my_image1 = np.linspace(0, 10, 10000).reshape(100,100)
my_image2 = np.sqrt(my_image1.T) + 3
fig, axes = plt.subplots(nrows=1, ncols=2)
im = axes[0].imshow(my_image1)
clim=im.properties()['clim']
axes[1].imshow(my_image2, clim=clim)
fig.colorbar(im, ax=axes.ravel().tolist(), shrink=0.5)
plt.show()
如果第一個繪圖中的值範圍小於第二個繪圖中的範圍,那麼這不起作用。 – naught101
同意。但這正是我在文中解釋的。如果你不知道最佳範圍,但是你認爲第一個圖的自動範圍適合其餘的範圍,這將起作用。 –
- 1. 具有相同顏色和標記的散點圖子圖
- 2. Matplotlib:具有imshow的特定顏色
- 3. 具有相同子
- 4. 對matplotlib中的不同子圖使用相同的色條
- 5. Excel條形圖 - 同名的相同顏色和圖例條目
- 6. MATLAB上相同圖形繪製多條線具有不同ledgends /顏色
- 7. Matplotlib + Seaborn - 具有相同顏色的兩條線?
- 8. 具有相同的圖像
- 9. 獲取具有相同的顏色
- 10. 具有相同顏色的定界符
- 11. matplotlib具有相等縱橫比和個別顏色條的子圖
- 12. 在日誌中顯示兩個具有相同顏色條的圖像
- 13. 不同顏色條的子圖
- 14. 獲取具有相同色調但具有其他顏色的顏色?
- 15. qplot(ggplot2):具有相同顏色的更多功能的繪圖
- 16. Matplotlib,具有共享顏色條的多個散點子圖
- 17. 具有相同顏色點的D3多線圖
- 18. Matplotlib imshow - 顯示不同的顏色
- 19. 具有相同高度的RecyclerView子代
- 20. 具有多個條目具有相同值的JQuery select選項
- 21. JFreeChart:XY圖中具有相同值的重疊條紋
- 22. Seaborn - 具有色調的KDE子圖
- 23. 色條與子圖
- 24. 如果調色板不同,映射的imshow在子圖中不起作用
- 25. Matplotlib - imshow子流圖重疊
- 26. wpf工具包線條圖沒有點和不同的線條顏色
- 27. 獲取不同的系列具有相同的顏色
- 28. 使子圖像具有相同的強度表示
- 29. graphviz:子圖具有相同的節點,如何唯一
- 30. HTML:具有相同寬度的圖像
看來這篇文章有一個可以幫助你的答案。 http://stackoverflow.com/questions/3373256/set-colorbar-range-in-matplotlib – bserra
可能重複的[Matplotlib 2 Subplots,1 Colorbar](http://stackoverflow.com/questions/13784201/matplotlib-2- subplots-1-colorbar) –