Search code examples
pythonseabornbar-chart

seaborn.barplot returns TypeError about wrong number of positional arguments


Could you help me understand what is wrong in the code below?

import seaborn as sns
import warnings
warnings.filterwarnings('ignore')

df1 = pd.read_csv("https://raw.githubusercontent.com/ADPclass/ADP_book_ver01/main/data/diabetes_for_test.csv")
df1

diabetes = df1.groupby('Outcome').mean()
diabetes

fig, axes = plt.subplots(2, 4, figsize=(20, 14))

for i in range(4) :
    sns.barplot(diabetes.index, diabetes.iloc[:,i], ax = axes[0][i])
    axes[0][i].set_title(diabetes.columns[i])

for i in range(4) :
    sns.barplot(diabetes.index, diabetes.iloc[:,i+4], ax = axes[1][i])
    axes[1][i].set_title(diabetes.columns[i+4])

plt.suptitle("EDA")

enter image description here


Solution

  • I think the issues were in the arguments of the seaborn barplot method. This works for me:

    df1 = pd.read_csv("https://raw.githubusercontent.com/ADPclass/ADP_book_ver01/main/data/diabetes_for_test.csv")
    
    diabetes = df1.groupby('Outcome').mean()
    
    fig, axes = plt.subplots(2, 4, figsize=(20, 14))
    
    for i in range(4) :
        sns.barplot(data=diabetes, x=diabetes.index, y=diabetes.iloc[:,i], ax = axes[0][i])
        axes[0][i].set_title(diabetes.columns[i])
    
    for i in range(4) :
        sns.barplot(data=diabetes, x=diabetes.index, y=diabetes.iloc[:,i+4], ax = axes[1][i])
        axes[1][i].set_title(diabetes.columns[i+4])
    
    plt.suptitle("EDA")