Skip to main content
 首页 » 编程设计

python之颜色映射到蓝色阴影之python

2025年05月04日14lhb25

我有以下(示例)代码:

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib as mpl 
 
 
n_lines = 5 
x = np.linspace(0, 10, 100) 
y = np.sin(x[:, None] + np.pi * np.linspace(0, 1, n_lines)) 
c = np.arange(1, n_lines + 1) 
 
norm = mpl.colors.Normalize(vmin=c.min(), vmax=c.max()) 
cmap = mpl.cm.ScalarMappable(norm=norm, cmap=mpl.cm.jet) 
cmap.set_array([]) 
 
fig, ax = plt.subplots(dpi=100) 
for i, yi in enumerate(y.T): 
    ax.plot(x, yi, c=cmap.to_rgba(i + 1)) 
fig.colorbar(cmap, ticks=c) 
plt.show(); 

我想为 cmap.to_rgba 找到一个替代品,使每条线的颜色呈现为不同的蓝色阴影。
基本上我想保持与此代码结果相同的布局,但使用颜色图 Blues。

我该怎么做?

请您参考如下方法:

您需要将正在使用的颜色图从 jet 更改为 Blues。

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib as mpl 
 
 
n_lines = 5 
x = np.linspace(0, 10, 100) 
y = np.sin(x[:, None] + np.pi * np.linspace(0, 1, n_lines)) 
c = np.arange(1, n_lines + 1) 
 
norm = mpl.colors.Normalize(vmin=c.min(), vmax=c.max()) 
cmap = mpl.cm.ScalarMappable(norm=norm, cmap=mpl.cm.Blues) 
cmap.set_array([]) 
 
fig, ax = plt.subplots(dpi=100) 
for i, yi in enumerate(y.T): 
   ax.plot(x, yi, c=cmap.to_rgba(i + 1)) 
fig.colorbar(cmap, ticks=c) 
plt.show() 

这会产生: