Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 光谱图-使特定区域变白 我在C++中生成了一个谱图,用MatpultLIB。_Python_Matplotlib - Fatal编程技术网

Python 光谱图-使特定区域变白 我在C++中生成了一个谱图,用MatpultLIB。

Python 光谱图-使特定区域变白 我在C++中生成了一个谱图,用MatpultLIB。,python,matplotlib,Python,Matplotlib,这很好,但是,我正在分割光谱图的各个部分,并希望确定关键的兴趣点。该公式的工作原理与此类似: if(block >= threshold) then spectrogram = block else: spectrogram = "0" 本质上,如果谱图中的块高于阈值,则在特定位置捕获该块的数据。但是,如果不是,那么我们就让块包含“0”。问题是,当我绘制此图时,值为“0”的区域中不会显示“白色”: 结果如下: 是否有一种方法可以将不感兴趣的区域设置为“白色”,而只显示感兴趣的区

这很好,但是,我正在分割光谱图的各个部分,并希望确定关键的兴趣点。该公式的工作原理与此类似:

if(block >= threshold) then
  spectrogram = block
else:
  spectrogram = "0"
本质上,如果谱图中的块高于阈值,则在特定位置捕获该块的数据。但是,如果不是,那么我们就让块包含“0”。问题是,当我绘制此图时,值为“0”的区域中不会显示“白色”:

结果如下:


是否有一种方法可以将不感兴趣的区域设置为“白色”,而只显示感兴趣的区域?

尝试将需要白色的区域遮罩起来

data = np.loadtxt("spec.txt")
data = np.ma.masked_where(data == 0, data)
pl.imshow(data, interpolation='nearest', ...)
编辑:

下面是一个例子:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.random_integers(-1, 1, (10, 10))
masked_data = np.ma.masked_where(data == 0, data)

plt.imshow(data, interpolation="nearest")
plt.show()

第二次编辑:

要更改颜色方案,请使用颜色贴图

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

data = np.random.rand(10, 10)

cmap = matplotlib.cm.binary
plt.imshow(data, interpolation="nearest", cmap=cmap)
plt.show()


查看许多彩色地图的列表。

感谢您的回复,但是,这不起作用。只是显示相同的。你能看到编辑吗。这对我来说很有用,所以1.)确保你遵循了我的代码,2.)你能发布一份数据的样本副本吗?哦,我看错了文件;)!漫长的一天!谢谢先生,终于可以开始写这篇论文了!抱歉,你知道一个简单的方法来设置不是1的值,只是灰度吗?但是,这取决于价值观的强弱?例如,该值越高,灰色强度越高。我应该问另一个问题吗?是的,你应该问另一个问题,但你可以使用彩色地图。请参见编辑。
plt.imshow(masked_data, interpolation="nearest")
plt.show()
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

data = np.random.rand(10, 10)

cmap = matplotlib.cm.binary
plt.imshow(data, interpolation="nearest", cmap=cmap)
plt.show()