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

时间:2020-03-11 10:44:14

标签: 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()

我得到以下情节: plot of energy

我想用其他字眼来使故事情节更加丰富多彩

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以通过自定义颜色图设置自定义范围,也可以调整范围值以使用关键字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值以内的颜色

enter image description here

或者,您可以重新缩放数据或调整颜色图,有关详细信息,请参阅maplotlib文档。