Гистограмма Pandas plot с указанием его стоимости - PullRequest
0 голосов
/ 11 ноября 2019

Как построить этот график ниже с его значением И процентом на графике?

    Activity Month  Total Monthly Actual Hours  Total Monthly Work Hours
0   Apr-19          35381.25                    42592
1   May-19          31722.50                    44528
2   Jun-19          27708.50                    38720
3   Jul-19          34283.50                    44528
4   Aug-19          32225.60                    42592

Пока я могу нормально построить его только с помощью этого кода:

display(df.reset_index())

df.plot(kind='bar').tick_params(rotation = 0)
plt.ylabel('Work Hours')
plt.xlabel('Month')

enter image description here

Я хотел построить этот график так:

enter image description here

1 Ответ

2 голосов
/ 11 ноября 2019

Один из способов сделать проценты на лету:

df = pd.DataFrame(...)

ax = df.plot(kind='bar')

ax.tick_params(rotation = 0)

for date, (p, q) in enumerate(zip(df["Total_Monthly_Actual_Hours"],df["Total_Monthly_Work_Hours"])):
    ax.annotate(f"{p}\n({(p/q)*100:.0f}%)", (date-0.25, p*1.02), size=7)
    ax.annotate(f"{q}\n({(q/q)*100:.0f}%)", (date, q*1.02), size=7)

plt.ylabel('Work Hours')
plt.xlabel('Month')

plt.show()

enter image description here

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