【发布时间】:2021-08-06 08:32:46
【问题描述】:
我有一个带有ordered 值和ordered 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) -
它使用
Number_of_Activities排序,使用data.sort_values(by="Number_of_Activities", ascending=False, inplace=True),这是我想要绘制的必需顺序 -
data.sort_index(ascending=False, ignore_index=True, inplace=True)这很有效。谢谢@r-beginners -
@r-beginners 请务必将其发布为答案,我很乐意接受答案...
标签: python matplotlib data-visualization