如何反转 Matplotlib 发散图中的顺序?

How to invert the order in Matplotlib diverging plot?

我有一个数据框 orderedordered index

     PERFORMER_ID   Number_of_Activities    colors
0        535    24  darkgreen
1        1FD    20  darkgreen
2        4F8    14  darkgreen
3        A8D    14  darkgreen
4        57D    11  darkgreen
5        D8B    10  darkgreen
6        064    9   darkgreen
7        D9F    9   darkgreen
8        684    9   darkgreen
9        F87    9   darkgreen
10       5A8    -1  red
11       5A6    -1  red
12       5A1    -1  red
13       59B    -1  red
14       59A    -1  red
15       587    -1  red
16       581    -1  red
17       578    -1  red
18       574    -1  red
19       7C3    -1  red

我正在尝试用上述数据发散情节

# Draw plot
import matplotlib.patches as patches

plt.figure(figsize=(10,12), dpi= 80)
plt.hlines(y=data.index, xmin=0, xmax=data.Number_of_Activities, color=data.colors, alpha=0.4, linewidth=1)
plt.scatter(data.Number_of_Activities, data.index, color=data.colors, s=600, alpha=0.6)

for x, y, tex in zip(data.Number_of_Activities, data.index, data.Number_of_Activities):
    t = plt.text(x, y, abs(tex), horizontalalignment='center', 
                 verticalalignment='center', fontdict={'color':'white'})
    
plt.yticks(data.index, data.PERFORMER_ID)
plt.xticks(fontsize=12)



# # Add Patches
# p1 = patches.Rectangle((-2.0, -1), width=.3, height=3, alpha=.2, facecolor='red')
# p2 = patches.Rectangle((1.5, 27), width=.8, height=5, alpha=.2, facecolor='green')
# plt.gca().add_patch(p1)
# plt.gca().add_patch(p2)

# Decorate
plt.title('Performers with Most & Less Activities', fontdict={'size':12})
plt.grid(linestyle='--', alpha=0.5)
plt.show()

剧情倒序了。如何按照给定的顺序绘制它,或者如何反转上图中的值(底部 10 到顶部,顶部 10 到底部)?

处理此问题的最简单方法是对数据重新排序和重新编制索引。

data.sort_index(ascending=False, ignore_index=True, inplace=True)