更改绘图中的颜色范围(imshow)?

Dem*_*mon 2 python matplotlib

我的矩阵中称为“能量”的值彼此足够接近:例如,一个值可以是 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()
Run Code Online (Sandbox Code Playgroud)

我得到以下图: 能量图

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

提前致谢。

cva*_*ren 5

您可以通过自定义颜色图设置自定义范围,也可以使用关键字vmin和调整范围值以显示vmax。例如:

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()
Run Code Online (Sandbox Code Playgroud)

产生 0、2 值范围内的颜色

在此输入图像描述

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