Выровняйте стиль Pandas Barchart - PullRequest
0 голосов
/ 27 апреля 2018

пожалуйста, я просмотрел документацию по: https://pandas.pydata.org/pandas-docs/stable/style.html раздел «Гистограммы», но когда я пытаюсь использовать тот же код с этим простым кадром данных, кажется, что-то идет не так. Мой код следующий:

import pandas as pd
df = pd.DataFrame([[0,0,19],[0,-3,16],[1,0,21]], columns = ["5D Net Chg","20D Net Chg","60D Net Chg"] )
df.style.bar(subset=["5D Net Chg","20D Net Chg","60D Net Chg"], align='mid', color=['#d65f5f', '#5fba7d'])

Если вы запустите этот код, вы должны увидеть то, что я вижу, то есть: * -3 ячейка полностью красная, тогда как я ожидаю увидеть красную полосу, начинающуюся с середины ячейки * ячейка со значением 1 полностью зеленая. Я ожидаю увидеть крошечную зеленую полосу, начинающуюся с середины ячейки, учитывая максимальное значение в кадре данных 21

.

что я могу сделать, чтобы это выглядело больше как панели данных «условного форматирования», которые есть в Excel? Спасибо

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Я думаю, что все правильно. Это просто ценности, которые у вас есть. Меняем значения на следующие:

import pandas as pd
df = pd.DataFrame([[0,2,19],[0,-3,16],[1,-4,21]], 
columns = ["5D Net Chg","20D Net Chg","60D Net Chg"] )

Я получаю это

df.style.bar(subset=["5D Net Chg","20D Net Chg","60D Net Chg"], align='mid', color=['#d65f5f', '#5fba7d'])

enter image description here

0 голосов
/ 27 апреля 2018

вы хотите выровнять значение 0 в середине ячейки. Поэтому вы должны выбрать align='zero'. Обратите внимание, что выравнивание работает по столбцам.

import pandas as pd
df = pd.DataFrame([[0,0,-5],[0,-3,16],[1,2,21]], columns = [1,2,3] )
df.style.bar(subset=[1,2,3], align='zero', color=['#d65f5f', '#5fba7d'])

enter image description here

...