Annotate удаляет предыдущее форматирование в plt - PullRequest
0 голосов
/ 14 мая 2019

Я хочу иметь один выход, но у меня есть два, и когда я пытаюсь поместить какой-то процент в диаграмму, он помещает его в старый Barchart, игнорируя форматы изменений, которые я реализовал в предыдущем. Это делается после функции аннотирования, и когда я нажимаю кнопку show, она включает проценты, но в старой диаграмме

Почему plt не сохраняет мои предыдущие изменения, например, изменения, которые я внес в ярлыки, условные обозначения и т. Д.

Я знаю, как решить эту проблему, используя слой Artist, который предпочитают все разработчики. Однако я действительно хочу выяснить, почему plt помещает проценты в старый столбец, а не в тот, в который я внес изменения.

import matplotlib as mpl
import matplotlib.pyplot as plt
colors_list = ['#5cb85c','#5bc0de','#d9534f']
df_ds_per.div(df_ds_per.sum(1), axis=0)).plot(kind='bar',figsize=(15,4),width = 0.8,color = colors_list,edgecolor=None)
df_ds_per.plot(kind="bar",figsize=(20, 8),width=0.8,color = colors_list,edgecolor=None)  

plt.xticks(fontsize=14)
plt.yticks([])

#Remove the axes
for spine in plt.gca().spines.values():             
    spine.set_visible(False)

plt.legend(labels=df_ds_per.columns,fontsize= 14)
plt.title("Percentage of Respondents' Interest in Data Science 
Areas",fontsize= 16)

#Add the percentages
for p in df_ds_per.plot(kind="bar",figsize=(20, 8),width=0.8,color = 
colors_list,edgecolor=None).patches:
    width, height = p.get_width(), p.get_height()
    x, y = p.get_xy() 
    plt.annotate('{:.0%}'.format(height), (x, y + height + 0.01)) 


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