qfd*_*qfd -1 python matplotlib pandas
我有一个如下所示的数据框
univ date ms cs
C 11/01/1977 0.2 0.1
C 11/02/1977 0.3 0.4
B 11/01/1977 0.6 -0.1
B 11/02/1977 0.55 -0.5
A 11/01/1977 0.23 0.2
A 11/02/1977 0.12 0.15
etc
Run Code Online (Sandbox Code Playgroud)
这是我目前所拥有的
fig, axes = plt.subplots(1, 3, figsize=(15, 5))
for (universe, group), ax in zip(df.groupby([df.univ]), axes.flatten()):
group.plot(x='ms', y='cs', kind='scatter', ax=ax, title=universe)
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
Run Code Online (Sandbox Code Playgroud)
这将产生3个散点图,范围从0到1。我想做的是将标点的顺序保持为C,B,A,以便按A,B,C进行排序。
谢谢你的帮助!
问题在于,groupby
默认情况下,会按排序顺序返回项目。只需设置标志sort=False
。
for (universe, group), ax in zip(df.groupby([df.univ], sort=False), axes.flatten()):
group.plot(x='ms', y='cs', kind='scatter', ax=ax, title=universe)
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
Run Code Online (Sandbox Code Playgroud)
您也可以按所需的任何顺序退回它们。
gb = df.groupby('univ')
desired_order = ('B', 'A', 'C')
for (universe, group), ax in zip(((u, gb.get_group(u)) for u in desired_order),
axes.flatten()):
...
Run Code Online (Sandbox Code Playgroud)
顺便说一句,每个帖子您只能有一个问题。
归档时间: |
|
查看次数: |
922 次 |
最近记录: |