matplotlib imshow-默认颜色标准化 - python

使用imshow时,我的颜色映射一直存在问题,有些颜色似乎只是变成黑色。我终于意识到,默认情况下,imshow似乎可以规范我给它的浮点值矩阵。

我本来希望像[[0,0.25],[0.5,0.75]]这样的数组可以显示对应于这些绝对值的映射中的适当颜色,但是0.75将被解释为1。在极端情况下,N x N数组为0.2(例如),只会产生一个大的黑色方块,而不是在颜色图中期望0.2对应的那个(可能是20%的灰色)。

有办法防止这种行为吗?当自定义颜色图具有许多不连续性时,这尤其令人烦恼,比例的微小变化可能会导致所有颜色完全改变。

参考方案

只需指定vmin=0, vmax=1即可。

默认情况下,imshow将数据标准化为其最小值和最大值。您可以使用vminvmax参数或norm参数(如果要进行非线性缩放)来控制它。

作为一个简单的例子:

import matplotlib.pyplot as plt

data = [[0, 0.25], [0.5, 0.75]]

fig, ax = plt.subplots()
im = ax.imshow(data, cmap=plt.get_cmap('hot'), interpolation='nearest',
               vmin=0, vmax=1)
fig.colorbar(im)
plt.show()

Matplotlib-固定x轴缩放比例和自动缩放y轴 - python

我只想绘制部分数组,固定x部分,但让y部分自动缩放。我尝试如下所示,但是它不起作用。有什么建议么?import numpy as np import matplotlib.pyplot as plt data=[np.arange(0,101,1),300-0.1*np.arange(0,101,1)] plt.figure() plt.scatter(da…

matplotlib中的文本部分着色 - python

matplotlib中是否可以部分指定字符串的颜色?例:plt.ylabel("Today is cloudy.") 如何将“今天”显示为红色,“是”显示为绿色和“多云”。如蓝色?谢谢。 参考方案 我只知道如何非交互地执行此操作,即使那样也只能使用“PS”后端。为此,我将使用Latex设置文本格式。然后,我将包含“颜色”包,并根据需要设置…

Matplotlib-更改自动轴范围 - python

我将自动轴范围用于数据。例如,当我使用-29到+31之间的x数据时,ax = plt.gca() xsta, xend = ax.get_xlim() 我得到-30和40,这不能正确描述数据范围。我希望看到轴范围四舍五入为5,即极限为-30和35。有可能这样做吗?或者,是否有可能获取x轴数据的精确范围(-29,31),然后编写算法手动更改该值(使用set_x…

在matplotlib中自动调整图形大小 - python

有没有一种方法可以自动调整图形的大小以正确适合matplotlib / pylab图像中包含的图形?我正在根据所使用的数据创建纵横比不同的热图(子)图。我知道我可以计算出宽高比并手动设置它,但是肯定有更简单的方法吗? 参考方案 使用 bbox_inches ='tight'import numpy as np import matplotlib.pyplot…

Matplotlib:保存图形时白色边距和隐藏轴 - python

我一直在尝试保存用matplotlib制作的图,但遇到了一些问题:不仅遇到了常见的白色边距问题(我在网上找到了一些解决方案),而且看来我的坐标轴和标签都在当我保存图像时,它们消失了,尽管当我要求Python show()结果时它们看起来很好。这是MWE,是我用show()得到的结果的打印屏幕(这是我想要的结果),以及将图形保存到.png时得到的结果(我相信白…