Могу ли я построить гистограмму, где цвет каждого бара зависит от того, было ли значение больше или меньше предыдущего значения - PullRequest
1 голос
/ 04 октября 2019

Я хотел бы построить гистограмму, где цвет каждого бара зависел от того, было ли значение больше или меньше предыдущего значения. Могу ли я сделать это с пониманием списка? Я думаю, это будет выглядеть примерно так:

import pandas as pd
import matplotlib.pyplot as plt

DateRange = pd.date_range('1/31/2019', '6/30/2019', freq='M')
df = pd.DataFrame({'Values':[1,3,2,4,3,5]}, index=DateRange)

clrs = ['green' if row > row.shift(1) else 'red' for row in df['Values']]
plt.bar(df.index, df['Values'], width=5, color=clrs)

1 Ответ

2 голосов
/ 04 октября 2019

Да, вам нужно только передать правильные цвета:

DateRange = pd.date_range('1/31/2019', '6/30/2019', freq='M')
df = pd.DataFrame({'Values':[1,3,2,4,3,5]}, index=DateRange)

# notice the difference with your code
clrs = np.where(df['Values'].diff().gt(0), 'g', 'r')

plt.bar(df.index, df['Values'], width=5, color=clrs)

Вывод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...