Удалить аннотации на столбчатой ​​диаграмме с накоплением, где значение равно нулю - PullRequest
0 голосов
/ 23 мая 2019

Я создал столбчатую диаграмму с накоплением, показывающую% случаев между 2 классами объектов за определенный период времени. Я сделал визуализацию, чтобы показать это, но я хотел бы удалить аннотации, где значение класса 1 = 0.

Вот визуализация у меня на данный момент

Visualisation

Если вы заметили на картинке выше, 29 и 31 (значения по оси X) 0,00 появляется там, где должны быть xticks. Я хотел бы удалить эти аннотации, в частности.

Это код, который я написал для создания визуализации:

dat_grouped = dat.groupby(['Hours','Class'])['Amount'].sum()
ax_three = dat_grouped.groupby(level=0).apply(lambda x:round(100*x/x.sum(),3)).unstack().plot.bar(stacked=True)
for i in ax_three.patches:
    width,height=i.get_width(),i.get_height()
    x,y = i.get_xy()
    horiz_offset=1
    vert_offset=2
    ax_three.legend(bbox_to_anchor=(horiz_offset,vert_offset))
    ax_three.annotate('{:.2f} %'.format(height),(i.get_x()+.15*width,i.get_y()+.5*height),rotation=90)

1 Ответ

1 голос
/ 23 мая 2019

Один из способов - добавить условие к шагу аннотации:

if height > 0:
    ax_three.annotate('{:.2f} %'.format(height),
                      (i.get_x()+.15*width,
                       i.get_y()+.5*height),
                      rotation=90)

Примечание: вы пробовали линейный график вместо гистограммы? Отображение изменений с течением времени с использованием линии имеет для меня больше смысла и может показаться менее занятым, но на это нет однозначного ответа.

...