Python Pandas Bar Chart - изменить цвет для указанных c баров - PullRequest
1 голос
/ 05 февраля 2020

У меня есть некоторые данные в csv.

В нем только один столбец и строки содержимого с футбольными показателями, такими как "0: 0", "1: 2" и др. c.

* 1004. * Тогда я строю гистогаму с df[0].value_counts().plot(kind='bar').

Каков наилучший способ изменить цвет только для баров с показателем "ничья" (0: 0, 1: 1, ...)?

Я могу добавить второй столбец с '1 'для др aws и' 0 'для других, но не понимаю, как использовать его в качестве цвета полосы.

Я попытался найти решение другого вопроса здесь

df[0].value_counts().plot(kind='bar', color=(df[1] == 1).map({True: 'orange', False: 'blue'})), но получил неправильная окраска

неправильная окраска , ожидание оранжевого "1: 1"
пример кадра данных:

      0  1
0   2:0  0
1   2:3  0
2   1:1  1
3   1:3  0
4   2:0  0
5   3:4  0
6   1:2  0
7   0:1  0
8   2:3  0
9   0:1  0
10  1:1  1
11  2:1  0
12  0:1  0
13  1:2  0
14  0:3  0

1 Ответ

1 голос
/ 05 февраля 2020

Используйте numpy.where для проверки совпадения столбца 1 с Index.isin для массива цветов, переданного параметру color:

a = df[0].value_counts()
colors = np.where(a.index.isin(df.loc[df[1] == 1, 0].unique()), 'orange', 'blue')
a.plot(kind='bar', color=colors)

g

...