由於您使用的是組標籤,標籤實際上的tuple
代表每個組,迅速解決該str
屬性:
In [42]:
print df
v1 v2 v3
0 A 11 1
1 A 11 2
2 A 30 3
3 A 30 4
4 B 45 5
5 B 45 6
6 B 12 7
7 B 12 8
In [43]:
ax = plt.subplot(111)
for grp, val in df.groupby(['v1', 'v2']):
ax.plot(val.v3,val.v3-1,'o', label = grp)
L = ax.legend(loc=4)
_ = [item.set_text(' '.join(map(str, eval(item.get_text())))) for item in L.get_texts()]
顯示它一步一步:
In [38]:
[item.get_text() for item in L.get_texts()]
Out[38]:
["('A', 11)", "('A', 30)", "('B', 12)", "('B', 45)"]
In [39]:
[eval(item.get_text()) for item in L.get_texts()] #convert them back to tuple
Out[39]:
[('A', 11), ('A', 30), ('B', 12), ('B', 45)]
In [41]:
[' '.join(map(str, eval(item.get_text()))) for item in L.get_texts()] #into strings
Out[41]:
['A 11', 'A 30', 'B 12', 'B 45']
+1給我一個更好的理解python和這個很好的答案 – Moritz 2014-09-30 08:47:02
但什麼是下劃線? – Moritz 2014-09-30 08:53:14
'.set_text()'方法返回'None'。因此,如果您使用的是交互式環境,最後一步是返回'[None,None,None ...]','_ ='禁止輸出。 – 2014-09-30 14:43:21