использование цветовой карты matplotlib с фреймом данных pandas.функция plot

Я пытаюсь использовать matplotlib.объект colormap в сочетании с панд.функция участка:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm

df = pd.DataFrame({'days':[172, 200, 400, 600]})
cmap = cm.get_cmap('RdYlGn')
df['days'].plot(kind='barh', colormap=cmap)
plt.show()

Я знаю, что я должен каким-то образом сообщить цветовой карте диапазон значений, которые она кормит, но я не могу понять, как это сделать при использовании панд .функция plot() как этот plot () не принимает параметры vmin/vmax, например.

1 ответов


Pandas применяет цветовую карту для каждой строки, Что означает, что вы получаете тот же цвет для фрейма данных с одним столбцом.

чтобы применить разные цвета к каждой строке фрейма данных, необходимо создать список цветов из выбранной цветовой карты:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np

df = pd.DataFrame({'days':[172, 200, 400, 600]})
colors = cm.RdYlGn(np.linspace(0,1,len(df)))
df['days'].plot(kind='barh', color=colors)
plt.show()

enter image description here

другой метод - использовать matplotlib напрямую.