如何将归一化颜色条应用于具有迭代线图的图形

How to apply normalized colorbar to a figure with iterative line plots

我已经根据我的数据对颜色条进行了归一化处理

import matplotlib as mpl
fig,ax=plt.subplots(figsize=(6,1))
fig.subplots_adjust(bottom=0.5)
cmap=mpl.cm.jet
norm=mpl.colors.Normalize(vmin=np.min(epi_dist),vmax=np.max(epi_dist))
cb1=mpl.colorbar.ColorbarBase(ax,cmap=cmap,norm=norm,orientation='horizontal')
fig.show()

现在我需要通过 for 循环在单个图中绘制多条线图,并根据这个新规范化的颜色图使用一个代表颜色的变量 例如:

plt.plot(x,y,color=200,cmap='cmap')

这里的颜色表示数据中的变量,根据标准化的cmap

表示颜色

如果对多条线图重复上面的代码,最终的图形将是这样的,带有标准化的颜色条

期待您的宝贵建议

您可以使用 color=cmap(norm(value)) 从颜色图中提取所需的颜色,该颜色对应于颜色栏中显示的比例值。

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

epi_dist = np.linspace(0, 420, 20)

fig, (ax, cbar_ax) = plt.subplots(nrows=2, figsize=(10, 6), gridspec_kw={'height_ratios': [5, 1]})
cmap = plt.cm.jet
norm = plt.Normalize(vmin=np.min(epi_dist), vmax=np.max(epi_dist))
cb1 = mpl.colorbar.ColorbarBase(cbar_ax, cmap=cmap, norm=norm, orientation='horizontal')

x = np.linspace(0, 2 * np.pi, 200)
for epi in epi_dist:
    ax.plot(x, epi + 100 * np.sin(x), color=cmap(norm(epi)))

fig.show()