在Matplotlib的imshow中,我可以在不指定范围的情况下强制执行对称颜色限制吗?

时间:2018-04-27 07:36:17

标签: matplotlib colors

我想绘制具有对称颜色限制的差异图像,而不必自己计算颜色限制。也就是说,我的图像可能具有[-3, 5]范围内的强度。默认情况下,imshow使用这些值作为颜色限制,并且使用发散的颜色贴图,白色中心位于1.原因是我可能稍后更改图像并希望防止必须重新计算颜色在每个动画步骤中限制自己。

我可以imshow强制使用居中颜色限制,在我的示例[-5, 5]中,而不是自己传递[-5, 5]吗?

1 个答案:

答案 0 :(得分:0)

我假设您的意思是您不想手动计算每个绘图的限制,但可以在更改绘图时更新限制。

在这种情况下,您需要计算哪些限制是一个更高的绝对数字,然后将其负值vmin传递给vmax imshowimport numpy as np import matplotlib.pyplot as plt data = np.zeros((10, 10)) for i in range(10): data[i] = np.linspace(-3, 5, 10) def plot(data): limit = max(abs(np.min(data)), abs(np.max(data)) ) plt.imshow(data, aspect='auto', cmap='RdBu', vmin=-limit, vmax=limit) plt.colorbar() plt.show() 个关键字。这是一个最小的例子

complete.ly