Получить значение, напечатанное в верхней части гистограммы, используя python и matplotlib? - PullRequest
0 голосов
/ 09 мая 2019

Получить значение, напечатанное в верхней части гистограммы, используя python и matplotlib?

Я использую следующий код:

import pandas as pd
import matplotlib.pyplot as plt
hsif = pd.read_excel('C:\\Users\\ans\\Desktop\\test.xlsx')
class_sum = hsif.groupby('Class')['Value'].sum()
class_sum_sort = class_sum.sort_values(ascending=False)
ax = class_sum_sort.plot.barh(x='Class',y=class_sum_sort).invert_yaxis()
plt.title('My Dynamic Graphs')
plt.xlabel('Value',fontsize=20)
plt.ylabel('Class',fontsize=20)
plt.show()

с файлом excel, содержащим данные в виде

Class   Value
Six 3763
Six 2570
Six 1123
Six 901
Seven   12210
Seven   10384
Seven   3188
Seven   2592
Seven   1723
Seven   1011

Итак, я пытаюсь напечатать график со значением в верхней части столбца, которое будет автоматически изменяться в зависимости от графика.Также мы можем добавить цвет, определенный для шести как оранжевый и семь как красный цвет.Может ли кто-нибудь помочь мне в этом.

1 Ответ

0 голосов
/ 09 мая 2019

Вы можете прокручивать полосы и устанавливать цвет и текст.

import pandas as pd
import matplotlib.pyplot as plt

hsif = pd.read_excel('C:\\Users\\ans\\Desktop\\test.xlsx')
class_sum = hsif.groupby('Class')['Value'].sum()
class_sum_sort = class_sum.sort_values(ascending=False)
ax = class_sum_sort.plot(kind="barh", fontsize=13)
ax.set_title('My Dynamic Graphs')
ax.set_xlabel('Value', fontsize=20)
ax.set_ylabel('Class', fontsize=20)    

for i in ax.patches:
    ax.text(i.get_width(), i.get_y()+.3, str(i.get_width()), fontsize=13)

ax.patches[0].set_color("red")
ax.patches[1].set_color("orange")

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