es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error del gráfico de dispersión: “x e y deben tener el mismo tamaño”, pero tienen el mismo tamaño.

Me gustaría hacer un gráfico de dispersión con el dataframe “df_death_mois”. Pero no funciona. El mensaje de error es: “x e y deben tener el mismo tamaño”. ¿Me puedes ayudar?

import pandas as pd
import matplotlib.pyplot as plt

members = pd.read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-09-22/members.csv")
expeditions = pd.read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-09-22/expeditions.csv")
expeditions['highpoint_date'] = pd.to_datetime(expeditions['highpoint_date'])
lesmois = expeditions['highpoint_date'].dt.month
expeditions["mois"] = lesmois

df_members_mois = pd.merge(members, expeditions[['expedition_id', 'mois']], on='expedition_id', how='inner')
df_death_mois = df_members_mois[df_members_mois["death_cause"]=="Avalanche"]
df_death_mois1 = df_death_mois.groupby("mois")['death_cause'].count()
df_death_mois1 = df_death_mois1.to_frame()

plt.scatter(x="mois", y="death_cause", data=df_death_mois1)
plt.title('scatterplot')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que los parámetros x e y en plt.scatter() no tienen el mismo tamaño. En este caso, x es el mes y y es el recuento de muertes.

    Para solucionar el problema, reemplace el parámetro y en plt.scatter() con el nombre de la columna que contiene el recuento de muertes:

    plt.scatter(x="mois", y="death_cause", data=df_death_mois1)
    

    debe ser reemplazado por

    plt.scatter(x="mois", y="death_cause", data=df_death_mois1, s=df_death_mois1["death_cause"]) 
    

    El parámetro ‘s’ se utiliza para especificar el tamaño de los marcadores en el gráfico de dispersión. En este caso, estamos utilizando el recuento de muertes (que se almacena en la columna “death_cause” de df_death_mois1) como el tamaño de los marcadores.

    Esto creará un gráfico de dispersión donde el tamaño de cada marcador es proporcional al número de muertes en ese mes.

Comments are closed.