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.

Diagrama de dispersión con datos etiquetados, marcador en relación a la etiqueta

Quiero generar un gráfico de dispersión de un conjunto de datos con etiquetas. Quiero que las diferentes clases se muestren con diferentes estilos de marcadores.
Para la generación de datos utilizo el siguiente comando:

from sklearn.datasets import make_moons
X, y = make_moons(n_samples = 100, noise = 0.15)

Después de generar los datos:

X = array([[ 0.83193416,  0.67054039],
       [ 1.4017985 , -0.34708943],
       ...
       [ 1.02640652, -0.58107469],
       [-1.08443914,  0.51960219]])

y = array([0, 1, 1, 1, 0, ... 1, 0])

Se han generado arrays de tamaño igual, donde y es la etiqueta para los datos en X. Los datos etiquetados con 0 deben mostrarse como círculos y los datos etiquetados con 1 deben mostrarse como triángulos.
Aquí tienes un ejemplo de cómo debería verse:
Ejemplo

Gracias de antemano.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para graficar un conjunto de datos con etiquetas utilizando diferentes estilos de marcadores para cada clase, podemos utilizar la biblioteca matplotlib en Python. Así es cómo podemos hacerlo utilizando el conjunto de datos make_moons generado usando sklearn:

    import matplotlib.pyplot as plt
    from sklearn.datasets import make_moons
    
    # Generar los datos
    X, y = make_moons(n_samples = 100, noise = 0.15)
    
    # Crear arreglos separados para cada clase
    X_class0 = X[y==0]
    X_class1 = X[y==1]
    
    # Configurar los estilos de marcadores
    class0_marker = 'o'  # para círculos
    class1_marker = '^'  # para triángulos
    
    # Graficar los datos
    fig, ax = plt.subplots()
    ax.scatter(X_class0[:,0], X_class0[:,1], marker=class0_marker, label='Clase 0')
    ax.scatter(X_class1[:,0], X_class1[:,1], marker=class1_marker, label='Clase 1')
    plt.legend()
    plt.show()
    

    En el código anterior, primero generamos el conjunto de datos make_moons y separamos los puntos de datos en dos arreglos – X_class0 y X_class1 – basados en sus etiquetas en y. Luego configuramos los estilos de marcadores para cada clase utilizando class0_marker y class1_marker.

    Para crear el gráfico de dispersión, creamos un objeto figura y eje usando fig, ax = plt.subplots() y luego usamos ax.scatter() para graficar los datos para cada clase por separado, especificando el estilo de marcador y etiqueta para cada uno. Finalmente, agregamos una leyenda utilizando plt.legend() y mostramos el gráfico utilizando plt.show().

    Esto debería producir un gráfico de dispersión similar al ejemplo dado, con datos etiquetados como círculos y triángulos para cada clase respectiva.

Comments are closed.