繁体   English   中英

在matplotlib中绘制黑白二进制映射

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM