seaborn barplot 用于比较具有两行的数据框中的值
seaborn barplot to compare values from a dataframe with two rows
我有一个看起来像这样的数据框。
- X_1 - X_2 - X3 - ....
0 - float64 - float64 - float64 - ...
1 - ...
示例:df=pd.DataFrame({"X_1": [4, 2], "X_2": [2, 3], "X_3": [1, 1]})
在我的例子中,有两行和几十列。
我正在尝试制作一个条形图,它并排显示索引 0 和 1 处的值,从最大到最小,按索引 0 排序。例如,
|
| 0
value | 0 1
| 0 1 0 1
| 0 1 0 1 0 1
_______________________
X_1 X_2 X_3
当我尝试 运行 下面的命令时,出现了几个不同的错误。
我运行这个:
order=df.sort_values(df.iloc[0], ascending=False).df.columns
然后得到这个:
AttributeError: 'list' object has no attribute 'sort_values
如果我只是忽略排序,我试试这个:
sns.barplot(df, x=df.columns, y=df.values)
我明白了:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我怀疑我需要重塑我的 dataFrame 以使其更友好。
我认为可能有效的形状如下所示。
Category - Y_1 - Y2
X_1 - float64 - float64
X_2 - float64 - float64
X_3 - float64 - float64
...
然后,我想我可以像打击一样成功地进行排序和绘图。
订单。 order=df.sort_values(Y_1, ascending=False).Category Plot.
sns.barplot(df, x=df.Category, y=df.columns~'Category')
我的问题是:
如何从我的数据框中获取所需的图(如上图所示)?
我概述了一些我认为我在那里的领导,但这可能是完全错误的指导。
如果您有任何想法,请告诉我。
谢谢你!
你可以这样做:
df.T.plot.bar()
这会给你(使用你问题中定义的df
):
我有一个看起来像这样的数据框。
- X_1 - X_2 - X3 - ....
0 - float64 - float64 - float64 - ...
1 - ...
示例:df=pd.DataFrame({"X_1": [4, 2], "X_2": [2, 3], "X_3": [1, 1]})
在我的例子中,有两行和几十列。 我正在尝试制作一个条形图,它并排显示索引 0 和 1 处的值,从最大到最小,按索引 0 排序。例如,
|
| 0
value | 0 1
| 0 1 0 1
| 0 1 0 1 0 1
_______________________
X_1 X_2 X_3
当我尝试 运行 下面的命令时,出现了几个不同的错误。
我运行这个:
order=df.sort_values(df.iloc[0], ascending=False).df.columns
然后得到这个:
AttributeError: 'list' object has no attribute 'sort_values
如果我只是忽略排序,我试试这个:
sns.barplot(df, x=df.columns, y=df.values)
我明白了:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我怀疑我需要重塑我的 dataFrame 以使其更友好。 我认为可能有效的形状如下所示。
Category - Y_1 - Y2
X_1 - float64 - float64
X_2 - float64 - float64
X_3 - float64 - float64
...
然后,我想我可以像打击一样成功地进行排序和绘图。
订单。 order=df.sort_values(Y_1, ascending=False).Category Plot.
sns.barplot(df, x=df.Category, y=df.columns~'Category')
我的问题是: 如何从我的数据框中获取所需的图(如上图所示)? 我概述了一些我认为我在那里的领导,但这可能是完全错误的指导。 如果您有任何想法,请告诉我。 谢谢你!
你可以这样做:
df.T.plot.bar()
这会给你(使用你问题中定义的df
):