Saya punya kode sebagai berikut:

import pandas as pd

import numpy as np

import seaborn as sns

data=[np.random.randint(2018,2020,size=(30)),      
      np.random.randint(1,13,size=(30)),
      np.random.randint(1,101,size=(30)),
      np.random.randint(1,101,size=(30))]

cols=['year','month','val','val1']

data=pd.DataFrame(data).T

data.columns=cols

data1=[np.random.randint(1,13,size=(30)),
      np.random.randint(1,101,size=(30)),
      np.random.randint(1,101,size=(30))]

cols1=['month','val','val1']

data1=pd.DataFrame(data1).T

data1.columns=cols1


sns.barplot(data=data,x='month',y='val',hue='year',ci=False)

sns.barplot(data=data,x='month',y='val',estimator=np.mean,ci=False)

Untuk menghasilkan barplot dan sebenarnya saya mendapatkan dua bar plot

enter image description here

Dan yang kedua dengan rata-rata untuk setiap bulan

enter image description here

Tetapi saya ingin memiliki satu plot dengan tiga kolom untuk setiap bulan termasuk bilah rata-rata. Bisakah Anda membantu saya dengan ini?

0
data_b77 2 Juli 2020, 21:46

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan fungsi plot panda:

(data.pivot_table(index='month',columns='year',
                  values='val', margins=True, 
                  margins_name='Mean')
     .drop('Mean')
     .plot.bar()
)

Keluaran:

enter image description here

2
Quang Hoang 2 Juli 2020, 18:53