Quiero graficar varios conjuntos de datos en el mismo gráfico de dispersión:

cases = scatter(x[:4], y[:4], s=10, c='b', marker="s")
controls = scatter(x[4:], y[4:], s=10, c='r', marker="o")

show()

El anterior solo muestra el más reciente scatter()

También he intentado:

plt = subplot(111)
plt.scatter(x[:4], y[:4], s=10, c='b', marker="s")
plt.scatter(x[4:], y[4:], s=10, c='r', marker="o")
show()
  • Su sobreimpresión en la misma línea.

4 Comentarios

  1. 94

    Necesita una referencia a un Axes objeto de seguir dibujando en el mismo subtema.

    import matplotlib.pyplot as plt
    
    x = range(100)
    y = range(100,200)
    fig = plt.figure()
    ax1 = fig.add_subplot(111)
    
    ax1.scatter(x[:4], y[:4], s=10, c='b', marker="s", label='first')
    ax1.scatter(x[40:],y[40:], s=10, c='r', marker="o", label='second')
    plt.legend(loc='upper left');
    plt.show()

    MatPlotLib: Varios conjuntos de datos en el mismo gráfico de dispersión

    • ¿Qué 111 en fig.add_subplot(111) decir ?
    • Es la disposición de los subdiagramas dentro de este gráfico. El primer número es el número de filas de tramas secundarias; el segundo número es la cantidad de columnas de tramas secundarias; el tercer número es el subgrafo que estamos hablando ahora. En este caso, hay una fila y una columna de subdiagramas (es decir, un subgrafo) y los ejes están hablando de la primera de ellas. Algo como en la fig.add_subplot(3,2,5) sería la inferior izquierda de la subtrama de una cuadrícula de tres filas y dos columnas.
  2. 14

    Me encontré con esta pregunta, como yo tenía exactamente el mismo problema. Aunque aceptó responder funciona bien, pero con matplotlib versión 2.1.0, es muy sencillo tener dos diagramas de dispersión en una parcela sin el uso de una referencia a Axes

    import matplotlib.pyplot as plt
    
    plt.scatter(x,y, c='b', marker='x', label='1')
    plt.scatter(x, y, c='r', marker='s', label='-1')
    plt.legend(loc='upper left')
    plt.show()
  3. 5

    No sé, funciona muy bien para mí. Exacto comandos:

    import scipy, pylab
    ax = pylab.subplot(111)
    ax.scatter(scipy.randn(100), scipy.randn(100), c='b')
    ax.scatter(scipy.randn(100), scipy.randn(100), c='r')
    ax.figure.show()
    • Mi conjuntos de datos se superponen 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here