web-dev-qa-db-fra.com

Tracer deux colonnes de données

J'essaie de créer un graphique à barres dans Seaborn qui affiche les valeurs de deux variables (poids, variance) pour chaque ligne (facteur) dans mon bloc de données. Voici à quoi ressemblent mes données:

    Factor    Weight  Variance
    Growth    10%      0.15
    Value     20%      0.35

Voici mon code:

    fig=plt.figure(figsize=(10,10))
    ax1=fig.add_subplot(221)
    sns.barplot(x=df.index, y=df[['Weight', 'Variance']], ax=ax1)

Ce qui précède renvoie une erreur chaque fois que je ne peux pas déboguer. Ce que j'essaie de réaliser, c'est d'avoir un graphique, qui montre deux barres colorées pour chaque facteur; poids dans une couleur (ex: rouge) et variance dans une autre couleur (ex: bleu).

Quelqu'un a des suggestions ou des solutions de contournement potentielles?

Merci

8
Vikram Josyula

Outre le nettoyage de vos données dans un format bien rangé, vous devez reformater les données texte (pourcentages) en types de données numériques. Comme cela n'a rien à voir avec les diagrammes à barres, je suppose que vous pouvez vous en occuper vous-même et vous concentrer sur le tracé et les structures de données à la place:

df = pandas.DataFrame({
    'Factor': ['Growth', 'Value'],
    'Weight': [0.10, 0.20],
    'Variance': [0.15, 0.35]
})
fig, ax1 = pyplot.subplots(figsize=(10, 10))
tidy = df.melt(id_vars='Factor').rename(columns=str.title)
seaborn.barplot(x='Factor', y='Value', hue='Variable', data=tidy, ax=ax1)
seaborn.despine(fig)

enter image description here

12
Paul H