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.

Cómo cambiar el tamaño de los puntos en sns.scatterplot?

Me gustaría trazar un gráfico con un tamaño más grande en mis puntos.
He intentado con sizes=100 pero no funcionó.

Aquí está el código:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = np.array([[1, 3, 'weekday'], [2, 2.5, 'weekday'],[3, 2.7, 'weekend'], [4, 2.8, 'weekend'], [5, 3, 'weekday'], [6, 3.1, 'weekday'], [7, 3, 'weekday'], [8, 3.1, 'weekday'], [9, 3.1, 'weekday'], [10, 3.1, 'weekend']])

# Creando un marco de datos con los datos sin procesar
dataset = pd.DataFrame(data, columns=['day', 'miles_walked', 'day_category'])

ax = sns.scatterplot(x='day', y='miles_walked', data=dataset, hue='day_category', sizes=100)
# Personalizar los ejes y el título
ax.set_title("Miles recorridos")
ax.set_xlabel("día")
ax.set_ylabel("millas totales")
# Quitar los bordes superior y derecho
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
plt.show()

¿Podría alguien ayudar, por favor?
Muchas gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para aumentar el tamaño de los puntos en el gráfico de dispersión, puedes pasar una lista o un array al parámetro sizes, especificando el tamaño de cada punto individualmente.

    Aquí tienes una versión actualizada del código, con tamaños de punto más grandes:

    import numpy as np
    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    data = np.array([[1, 3, 'día de la semana'], [2, 2.5, 'día de la semana'], [3, 2.7, 'fin de semana'], [4, 2.8, 'fin de semana'], [5, 3, 'día de la semana'], [6, 3.1, 'día de la semana'], [7, 3, 'día de la semana'], [8, 3.1, 'día de la semana'], [9, 3.1, 'día de la semana'], [10, 3.1, 'fin de semana']])
    
    # Crear un data frame con los datos brutos
    dataset = pd.DataFrame(data, columns=['día', 'millas_caminadas', 'categoría_día'])
    
    # Definir el tamaño de cada punto individualmente
    sizes = np.where(dataset['categoría_día'] == 'fin de semana', 200, 100)
    
    ax = sns.scatterplot(x='día', y='millas_caminadas', data=dataset, hue='categoría_día', sizes=sizes)
    # Personalizar los ejes y el título
    ax.set_title("Millas caminadas")
    ax.set_xlabel("día")
    ax.set_ylabel("millas totales")
    # Quitar los bordes superior y derecho
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)
    plt.show()
    

    Este código utiliza la función np.where para especificar el tamaño del punto en función de la variable categoría_día. Los puntos correspondientes a los fines de semana se asignan un tamaño de 200, mientras que los puntos correspondientes a los días de la semana se asignan un tamaño de 100.

    Puedes ajustar el tamaño de los puntos cambiando los valores pasados a np.where.

Comments are closed.