如何将归一化颜色条应用于具有迭代线图的图形
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()
我已经根据我的数据对颜色条进行了归一化处理
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()