首页 > 解决方案 > 更改绘图中的颜色范围(imshow)?

问题描述

我的矩阵中称为“能量”的值彼此足够接近:例如,一个值可以是 500,另一个可以是 520。我想更准确地看到我的绘图上的色差。就像我数据中的最小值一样,它应该是非常暗的颜色,而对于最大值,它应该是非常亮的颜色。

我有以下代码:

fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(111)
plt.imshow(energy[0:60, 0:5920], cmap='Reds')
ax.axes.set_aspect(aspect=100)
plt.grid(color='yellow')
plt.title('My plot')
plt.xlabel('Length points')  
plt.ylabel('Time points(seconds)')
import matplotlib.ticker as plticker
loc = plticker.MultipleLocator(base=500)
ax.xaxis.set_major_locator(loc)
plt.show()

我得到以下情节: 能量图

换句话说,我想让这个情节更加丰富多彩

提前致谢。

标签: pythonmatplotlib

解决方案


您可以通过自定义颜色图或调整范围值来设置自定义范围以使用关键字vminvmax. 例如:

from matplotlib.pyplot import subplots
import numpy as np
fig, ax = subplots()
h = ax.imshow(np.random.rand(10,10) * 10, vmin = 0,\
     vmax = 2, cmap = 'Reds')
fig.colorbar(h)
fig.show()

产生 0、2 值内的颜色

在此处输入图像描述

或者,您可以重新缩放数据或调整颜色图,请参阅 maplotlib 文档了解更多信息。


推荐阅读