Извинения, если это было решено в другом месте.Поиски на этом сайте информации о передаче объектов в функции приводят к публикациям, связанным с c ++.Результаты Google указывают на записи, которые занимаются созданием различных цветовых карт.
background
Я хотел бы использовать цветовые карты matplotlib для цветных линейных графиков.Кроме того, я хочу иметь возможность указать , какую цветовую карту, как я называю functrion.
подход:
import numpy as np, matplotlib.pyplot as plt
data = [[1,2,3,4], [5,6,7,8], [6,7,83,5]]
def plotting_function(data, color_map=plt.cm.viridis, plot_kwds=None)
colors = color_map(np.linspace(0,1,len(data))
if plot_kwds is None:
plt_kwds = {}
for i, y in enumerate(data):
x_axis = range(len(y))
plot_kwds['color'] = colors[i]
plt.plot(x_axis, y, **plot_kwds)
ожидается:
aфигура с линиями, окрашенными согласно viridis.
на самом деле:
фигура с линиями, окрашенными не в соответствии с viridis.
Я понимаю, что могу исправить это, переместив colors = plt.cm.viridis(np.linspace(0,1,len(data))
в функцию, но было бы неудобно связываться с исходным кодом каждый раз, когда я хочу изменить цвета.
вопрос:
как я могу передать цветовую карту пользовательской функции?Есть ли более простой подход к этому, которого мне не хватает?
Я действительно ценю помощь!