日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 并列条形图_python – 来自两个pandas数据框的分组条形图

發布時間:2025/3/15 python 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 并列条形图_python – 来自两个pandas数据框的分组条形图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有兩個包含不同值但結構相同的數據框:

df1 =

0 1 2 3 4

D 0.003073 0.014888 0.155815 0.826224 NaN

E 0.000568 0.000435 0.000967 0.002956 0.067249

df2 =

0 1 2 3 4

D 0.746689 0.185769 0.060107 0.007435 NaN

E 0.764552 0.000000 0.070288 0.101148 0.053499

我想在單個分組條形圖中繪制兩個數據幀.另外,每一行(索引)應該是一個子圖.

對于其中一個直接使用pandas,這很容易實現:

df1.T.plot(kind="bar", subplots=True, layout=(2,1), width=0.7, figsize=(10,10), sharey=True)

我試著加入他們

pd.concat([df1, df2], axis=1)

這會產生一個新的數據幀:

0 1 2 3 4 0 1 2 3 4

D 0.003073 0.014888 0.155815 0.826224 NaN 0.746689 0.185769 0.060107 0.007435 NaN

E 0.000568 0.000435 0.000967 0.002956 0.067249 0.764552 0.000000 0.070288 0.101148 0.053499

但是,使用上述方法繪制數據框不會對每列的條形圖進行分組,而是將它們分開處理.對于每個子圖,這導致x軸具有按列的順序重復的刻度,例如, 0,1,2,3,4,0,1,2,3,4.

有任何想法嗎?

最佳答案 目前尚不清楚數據是如何組織的. Pandas和seaborn通常期望

tidy datasets.因為你在繪圖之前轉移數據我假設你有兩個變量(A和B)和四個觀察值(例如測量值)

df1 = pd.DataFrame.from_records(np.random.rand(2,4), index = ['A','B'])

df2 = pd.DataFrame.from_records(np.random.rand(2,4), index = ['A','B'])

df1.T

也許這接近你想要的:

df4 = pd.concat([df1.T, df2.T], axis=0, ignore_index=False)

df4['col'] = (len(df1.T)*(0,) + len(df2.T)*(1,))

df4.reset_index(inplace=True)

df4

使用seaborns facet grid可以方便地繪圖:

sns.factorplot(x='index', y='A', hue='col', kind='bar', data=df4)

總結

以上是生活随笔為你收集整理的python 并列条形图_python – 来自两个pandas数据框的分组条形图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。