2016-03-15 91 views
3

我有数据,波纹管如何更改顺序barplot seaborn

df = {u'Shkala' : [u'Wo', u' In', u'Ami', u'Tm', u'Re', u' Em', u'Leo', u' Ai', u' Sc', 
    u'Ct', u' Cm', u'Py', u'Ac', u' Ie', u' Cs', u'Mp', u'Do', u' So', 
    u'F/m', u'Lp', u' Sy', u' To', u' Gi', u' Sa', u' Wb', u' Sp', u' Fx'], 
    u'Ves' :[ 0.19110365, 0.27188837, 0.38561317, 1.05786403, 
     1.92149932, 2.07645852, 2.54917337, 2.69292373, 
     2.79209552, 3.69240049, 4.01010531, 4.42329527, 
     4.47754007, 6.19537683, 6.29601984, 8.59108183, 
     9.71862514, 10.30682861, 13.02674381, 13.65991585, 
     14.02427094, 17.58381143, 25.72956782, 29.18101805, 
     30.63714233, 63.52051974, 100.  ]} 

我做

import seaborn as sns 
sns.barplot(x="Shkala", y="Ves", data=df) 

我得到 enter image description here

我想重新以便Fx的成为最左边的等 我可以做sns.barplot(x="Shkala", y="Ves", data=df, order=['Fx', ......)但它很长 是否有一个更短的路?

回答

3

绘制之前反向就地两份名单:

df["Shkala"].reverse() 
df["Ves"].reverse() 

如果你需要的数据停留在目前的形式,创建一个重复的字典使用或产生像这样的顺序:

order = list(reversed(df["Shkala"])) 

,并通过在作为order = order

+0

感谢名单@Gareth我还没15点,当我得到15我会投 – Edward

+0

没问题,很高兴我能帮助:) –

+0

:)完成,不,我有15) – Edward