Разметка столбцов информационного кадра с использованием цветовой карты по умолчанию, за исключением одного столбца с другим цветом - PullRequest
2 голосов
/ 29 октября 2019

У меня есть целая куча столбцов в кадре данных, которые я строю следующим образом:

df.xs('Mean', level=1).cumsum().plot(cmap='winter').

Это показывает суммарную сумму средних значений по времени для всех моихколонны. (multiindex уровня 0 - время) Однако я хотел бы выделить конкретный столбец на графике другим цветом, но не уверен, как это сделать. Примерно так:

df.xs('Mean', level=1).cumsum().plot(cmap='winter', color={'my_specific_column':'red'}).

, который будет отображать все остальные столбцы по спектру 'winter' cmap (от голубого до синего), за исключением 'my_specific_column', который будет красным.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 29 октября 2019

Я думаю, что простой вариант - построить дважды

to_draw = df.xs('Mean', level=1).cumsum()

fig, ax = plt.subplots()

to_draw.drop('my_specific_column', axis=1).plot(cmap='winter', ax=ax)
to_draw['my_specific_column'].plot(color='red', ax=ax, label='my_specific_column')

ax.legend()
0 голосов
/ 29 октября 2019

Это еще одно решение. Сначала мы получаем цвета из карты цветов и устанавливаем их для каждого столбца, который мы хотим построить. Мы обновляем словарь, заставляя нужный нам цвет. И наконец, мы устанавливаем карту, которая будет применяться к сюжету.

import matplotlib
cmap = matplotlib.cm.get_cmap('winter')

# get colors for each of the columns
columns = df.columns.values
colors = [cmap(i) for i in range(1, len(columns)+1)]

# build a dictionary with them
COLORS_DICT = dict(zip(columns, colors))

# update with the column we want to change
COLORS_DICT.update({"my_specific_column": 'red'})
COLORS_MAP = list(map(lambda x : COLORS_DICT[x], COLORS_DICT))
df[columns].plot(color=COLORS_MAP)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...