• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

544
Vistas
Trazado de múltiples diagramas de dispersión pandas

Creo que hay muchas preguntas sobre el trazado de gráficos múltiples, pero no específicamente para este caso, como se muestra a continuación.

La documentación de pandas dice "repetir el método de trazado" para trazar varios grupos de columnas en un solo eje. Sin embargo, ¿cómo funcionaría esto para 3 o más grupos de columnas? Por ejemplo si definimos una tercera columna:

 bx = df.plot(kind='scatter', x='a',y='f',color = 'Green',label ='f')

¿A dónde se pasaría este bx?

Además, si la trama es la misma gráfica, ¿no debería ser consistentemente 'a' o 'c' el eje x? pero la documentación tiene 2 ejes x diferentes: 'a' y 'c'

ingrese la descripción de la imagen aquí

almost 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

¿A dónde se pasaría este bx?

Debe repetir la segunda llamada a plot , no la primera, por lo que no es necesario bx .

En detalle: la plot toma un argumento ax opcional. Estos son los ejes en los que se dibuja. Si no se proporciona el argumento, la función crea una nueva gráfica y ejes. Además, la función devuelve los ejes para que se puedan reutilizar para otras operaciones de dibujo. La idea es no pasar un argumento ax a la primera llamada para plot y usar los ejes devueltos en todas las llamadas posteriores.

Puede verificar que cada llamada a plot devuelve los mismos ejes que pasó:

 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(100, 6), columns=['a', 'b', 'c', 'd', 'e', 'f']) ax1 = df.plot(kind='scatter', x='a', y='b', color='r') ax2 = df.plot(kind='scatter', x='c', y='d', color='g', ax=ax1) ax3 = df.plot(kind='scatter', x='e', y='f', color='b', ax=ax1) print(ax1 == ax2 == ax3) # True

ingrese la descripción de la imagen aquí

Además, si el diagrama es el mismo gráfico, ¿no debería ser consistentemente 'a' o 'c' el eje x?

No necesariamente. Si tiene sentido colocar diferentes columnas en los mismos ejes, depende de los datos que representen. Por ejemplo, si a son los ingresos y c son los gastos, tendría sentido colocar ambos en el mismo eje de "dinero". Por el contrario, si a fuera el número de guisantes y c fuera el voltaje, probablemente no deberían estar en el mismo eje.

almost 3 years ago · Santiago Trujillo Denunciar

0

Puede trazar cualquier columna contra cualquier columna que desee. Si eso tiene sentido, tienes que decidir por ti mismo. Por ejemplo, trazar una columna que indica el tiempo en el mismo eje que una columna que indica la distancia puede no tener sentido, pero trazar dos columnas que contienen distancia en el mismo eje está bien.

Para especificar que un gráfico certin debe estar en ejes ya existentes ( ax ), debe especificar la palabra clave ax como se ve en la documentación. Por supuesto, puede crear varias parcelas en los mismos ejes.

 ax = df.plot(kind="scatter", x="x",y="a", color="b", label="a vs. x") df.plot(x="x",y="b", color="r", label="b vs. x", ax=ax) df.plot( x="x",y="c", color="g", label="c vs. x", ax=ax)

Un ejemplo completo:

 import pandas as pd import matplotlib.pyplot as plt import numpy as np x = np.linspace(0,6.3, 50) a = (np.sin(x)+1)*3 b = (np.cos(x)+1)*3 c = np.ones_like(x)*3 d = np.exp(x)/100. df = pd.DataFrame({"x":x, "a":a, "b":b, "c":c, "d":d}) ax = df.plot(kind="scatter", x="x",y="a", color="b", label="a vs. x") df.plot(x="x",y="b", color="r", label="b vs. x", ax=ax) df.plot( x="x",y="c", color="g", label="c vs. x", ax=ax) df.plot( x="d",y="x", color="orange", label="b vs. d", ax=ax) df.plot( x="a",y="x", color="purple", label="x vs. a", ax=ax) ax.set_xlabel("horizontal label") ax.set_ylabel("vertical label") plt.show()

ingrese la descripción de la imagen aquí

almost 3 years ago · Santiago Trujillo Denunciar

0

Dentro del ecosistema holoviz , hay una biblioteca llamada hvplot que proporciona una muy buena funcionalidad de trazado de alto nivel (además de holoviews ) que funciona de manera inmediata con Pandas:

 import numpy as np import hvplot.pandas import pandas as pd df = pd.DataFrame(np.random.randn(100, 6), columns=['a', 'b', 'c', 'd', 'e', 'f']) df.hvplot(x='a', y=['b', 'c', 'd', 'e'], kind='scatter')

ingrese la descripción de la imagen aquí

almost 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda