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.

Pandas Python – Crear subtramas a partir de 2 columnas de CSV

Estoy tratando de crear subparcelas: primero un diagrama de torta (lo conseguí), segundo un gráfico de barras (no lo logré):

Estas son las columnas:

Imagen de datos

Mi código:

top_series = all_data.head(50).groupby('Top Rated')['Top Rated'].count()
top_values = top_series.values.tolist()
top_index = ['Top Rated', 'Not Top Rated']
top_colors = ['#27AE60', '#E74C3C']

all_data['Rating_Cat'] = all_data['Rating'].apply(lambda x : 'High' if (x > 10000000 ) else 'Low')

rating_series = all_data.head(50).groupby('Rating_Cat')['Rating_Cat'].count()
rating_values = rating_series.values.tolist()
rating_index = ['High', 'Low']
rating_colors = ['#F1C40F', '#27AE60']

fig, axs = plt.subplots(1,2, figsize=(16,5))
axs[0].pie(top_values, labels=top_index, autopct='%1.1f%%', shadow=True, startangle=90,
           explode=(0.05, 0.05), radius=1.2, colors=top_colors, textprops={'fontsize':12})

all_data['Rating_Cat'].value_counts().plot(kind = 'bar', ax=axs[1])
fig.suptitle('¿Realmente influye "Rating" en los mejores vendedores?', fontsize=17)

Mi pregunta:
¿Cómo puedo crear el segundo gráfico que tenga una salida como esta?

Eje X = 1, 2, 3, 4 …. 50 + Top Rated / NO (según la columna actual)
Eje Y = valoración de 0 a 7603388.0

He intentado muchas cosas, pero estoy un poco perdido aquí… ¡por favor ayuda!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para crear el segundo gráfico, puedes modificar el código existente de la siguiente manera:

    fig, axs = plt.subplots(1,2, figsize=(16,5))
    axs[0].pie(top_values, labels=top_index, autopct='%1.1f%%', shadow=True, startangle=90,
               explode=(0.05, 0.05), radius=1.2, colors=top_colors, textprops={'fontsize':12})
    
    # Crea el segundo subplot
    axs[1].bar(x=range(1,51), height=all_data['Rating'].head(50), color=top_colors[0])
    # Agrega etiquetas y título
    axs[1].set_xticks(range(1, 51))
    axs[1].set_xlabel('Mejor valorado / No mejor valorado')
    axs[1].set_ylabel('Rating')
    axs[1].set_title('Mejor valorado vs Rating')
    
    fig.suptitle('¿Realmente "Rating" afecta a los mejores vendedores?', fontsize=17)
    

    Este código creará un gráfico de barras donde el eje X mostrará los valores de mejor valorado / no mejor valorado para las primeras 50 filas de los datos, y el eje Y mostrará los valores de Rating. El argumento range(1,51) en la función bar() establece los valores del eje X para mostrar los valores del 1 al 50. Puedes modificar el código para mostrar un rango diferente de filas o cambiar el estilo del gráfico según tus necesidades.

Comments are closed.