6

我想在 matplotlib 中制作如下图所示的矩阵图。我可以使用以下代码制作这样的情节:

m = numpy.random.rand(100,100)
matplotlib.pyplot.matshow(m)

如何控制色标,即设置与“min”和“max”颜色对应的值?

4

1 回答 1

19

matshow文档表明这些选项大多只是传递给(imshowdocs 。Imshow 接受参数vmin,并vmax根据您的需要确定最小和最大颜色。让我们看一个例子:

import numpy as np
import matplotlib.pyplot as plt
plt.ion()
A = np.arange(0,100).reshape(10,10)
plt.matshow(A)                        # defaults
plt.matshow(A, vmin=0, vmax=99)       # same
plt.matshow(A, vmin=10, vmax=90)      # top/bottom rows get min/max colors, respectively

在旁边:

我还可以建议更改颜色图吗?例如。cmap='hot'. 虽然它是默认设置(为什么?),但'jet'颜色图几乎从来都不是最佳选择

x = np.random.randn(1000)
y = np.random.randn(1000)+5
plt.hist2d(x, y, bins=40, cmap='hot')
plt.colorbar()

带有 cmap='hot' 的示例代码的输出

于 2013-10-31T07:15:36.680 回答