2 votes

Deux résultats différents de la visualisation

Mes données ressemblent à ça :

Survived,Pclass,Name,Sex
0,3,"Braund, Mr. Owen Harris",male
1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female
1,3,"Heikkinen, Miss. Laina",female
1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female
0,3,"Allen, Mr. William Henry",male
0,3,"Moran, Mr. James",male,

Lorsque j'essaie de comparer le nombre de survivants en première classe et le sexe, j'obtiens des résultats bizarres.

Quand j'essaie de le faire comme ceci

data[(data['Sex']=='female') & (data['Pclass']== 1)]['Survived'].value_counts().plot(kind='bar')

plt.legend()
plt.xticks(np.arange(2), rotation=0)
plt.title("Male and female survivors in first class")

plt.show()

Il montre que presque toutes les femmes en première classe ont survécu (et c'est exact).

Mais quand j'essaie de le faire comme ça :

import pandas as pd
from matplotlib import pyplot as plt
import numpy as np

data = pd.read_csv('titanic_data/train.csv')

males = data[(data['Sex']=='male') & (data['Pclass'] == 1)]['Survived'].value_counts()
females = data[(data['Sex']=='female') & (data['Pclass']== 1)]['Survived'].value_counts()

plt.bar(range(len(females)), females, align='edge', width=-0.4, label='Female', color='red', alpha=0.5)
plt.bar(range(len(males)), males, align='edge', width=0.4, label='Male', color='blue', alpha=0.5)

plt.legend()
plt.xticks(np.arange(len(males)), rotation=0)
plt.title("Male and female survivors in first class")

plt.show()

Il montre que presque toutes les femmes sont mortes (et c'est faux !).

Les résultats masculins sont corrects. Correct Not correct

2voto

Ricky Kim Points 1787

matplotlib.pyplot.bar prend x coordonnées de barres mais vous fournissez range(len(females)) ce qui revient à attribuer arbitrairement 0,1 au diagramme en bâtons sans tenir compte de l'ordre des valeurs. Survived dans la sortie de value_counts() . Ce que vous voulez fournir pour la coordonnée x est l'indice à la place. Par exemple :

plt.bar(females.index, females, align='edge', width=-0.4, label='Female', color='red', alpha=0.5)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X