[英]PIL image and matplotlib plot gets saturated black and white for png image
[英]Plot a black-and-white binary map in matplotlib
我正在使用python來模擬一些自動化模型,並且在matplotlib的幫助下,我正在生成如下所示的圖。
我正在使用以下命令進行繪圖:
ax.imshow(self.g, cmap=map, interpolation='nearest')
self.g
是二進制映射(當前圖中0
- >藍色, 1
- >紅色)。
但是,要在我的報告中包含這個,我希望情節是白色背景上的黑點而不是藍色的紅色。 我該如何做到這一點?
您可以通過cmap
關鍵字更改正在使用的顏色映射。 彩色地圖'Greys'
提供您想要的效果。 您可以在scipy網站上找到可用地圖的列表。
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(101)
g = np.floor(np.random.random((100, 100)) + .5)
plt.subplot(211)
plt.imshow(g)
plt.subplot(212)
plt.imshow(g, cmap='Greys', interpolation='nearest')
plt.savefig('blkwht.png')
plt.show()
這導致:
Yann的答案有一種替代方法可以讓你更精細地控制。 Matplotlib的imshow可以采用MxNx3
矩陣,其中每個條目是RGB顏色值 - 只需將它們設置為白色[1,1,1]
或黑色[0,0,0]
。 如果你想要三種顏色,很容易擴展這種方法。
import matplotlib.pyplot as plt
import numpy as np
# Z is your data set
N = 100
Z = np.random.random((N,N))
# G is a NxNx3 matrix
G = np.zeros((N,N,3))
# Where we set the RGB for each pixel
G[Z>0.5] = [1,1,1]
G[Z<0.5] = [0,0,0]
plt.imshow(G,interpolation='nearest')
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.