我试图用栏顶上的值打印图块,这将根据图形更改自动。我正在使用以下代码:
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 |
+----------+---------+
我们可以将颜色特定于 Six
添加为橙色和 Seven
作为红色吗?谁能帮助我?
您可以循环浏览条并设置文本和颜色。
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()