簡體   English   中英

用Seaborn繪制單杠圖

[英]Plot horizontal bar plot with seaborn

我正在爬目錄並讀取一堆文件並對其進行解析。 我所需要的只是獲取數據框的大小。 我通過使用len(df.index)來做到這len(df.index)

每個目錄有10個文件,從0到9編號。我將所有這些len(df.index)到數據幀中,其中字母['A', 'B', 'C', 'D']來自列表類別。 這些值通過df2.loc[seed,nd] = len(df.index)添加到數據幀中。 結果數據幀如下:

         A         B         C       D
0  10515.0  160592.0  221621.0  198884.0
1   9777.0  161307.0  222064.0  199841.0
2  10957.0  159954.0  219553.0  198622.0
3  12731.0  157862.0  221250.0       NaN
4  11765.0  162177.0       NaN       NaN
5   8849.0  155631.0       NaN       NaN
6  10549.0  160976.0       NaN       NaN
7   8694.0  158953.0       NaN       NaN
8  11696.0  160952.0       NaN       NaN
9  10590.0  161046.0       NaN       NaN

在我的腳本中,我在for循環中爬行了兩個目錄XZ ,得到了兩個數據幀,如上面的一個。

問題是我正在嘗試使用Seaborn水平條形圖繪制此數據框

sns.barplot(data=df2)

但我不知道如何指定類別,如所示這里

如何做到這一點? 我是否需要更改數據框格式?

我想得到這樣的結果(來自MS Excel)

在此處輸入圖片說明

您可以使用帶有參數keys的兩個DataFrame的concat來指定組,然后通過melt重塑形狀,最后使用參數hue來指定組:

dfs = [df21, df22]

df = pd.concat(dfs, keys=('X','Z')).reset_index(level=0).melt('level_0')
sns.barplot(x='value', y='variable', hue='level_0', data=df)

我認為可以使用seabon的barplot函數orient屬性來實現。

范例-

import pandas as pd
import numpy as np
import seaborn as sns
df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=list('ABCD'))
sns.barplot(data=df, orient = 'h')

樣例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM