Цвета в значениях формы гистограммы в кадре данных? - PullRequest
0 голосов
/ 12 июля 2020

У меня есть DataFrame, который я хотел бы построить с помощью гистограммы. Одно из значений в DataFrame должно определять цвет указанной c полосы.

Мои данные выглядят примерно так:

data = {"name1":(0, int), "name2":(1, int), "name3":(1, int)}

Ось x должна отображать все ключи , ось Y должна отображать каждое int. 0 и 1 в кортежах должны определять цвет полосы, которую они представляют.

Мой текущий код просто отображает DataFrame, как он есть:

df.plot.bar()

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

Итак, мой вопрос: как мне сказать pandas читать нули и единицы как цвета полос?

1 Ответ

0 голосов
/ 13 июля 2020

Вы должны сначала транспонировать ваши данные так, чтобы они выглядели так, а затем построить график с помощью matplotlib.pyplot.

name ,  color,   value
name1,    0  ,    int 
name2,    1  ,    int 
name3,    0  ,    int

Вот код:

df_new = pd.DataFrame(data).T 
df_new.columns = ['name', 'color', 'value'] 
df_new.loc[df.color == 0 , 'color'] = 'red' 
df_new.loc[df.color == 1 , 'color'] = 'blue'

fig = plt.figure()
ax.bar(df_new['name'] ,df_new['value'])

for i in df_new.index.values(): 
    ax[i].set_color(df_new.color.loc[i]) 
plt.show()
...