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

2024-05-19 20:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我的矩阵中称为“能量”的值彼此非常接近:例如,一个值可以是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

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

提前谢谢


Tags: 数据plot颜色figplt矩阵axloc
1条回答
网友
1楼 · 发布于 2024-05-19 20:27:16

您可以通过自定义颜色映射或使用关键字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文档

相关问题 更多 >