Encontré el siguiente ejemplo en matplotlib:
import numpy as np import matplotlib.pyplot as plt x1 = np.linspace(0.0, 5.0) x2 = np.linspace(0.0, 2.0) y1 = np.cos(2 * np.pi * x1) * np.exp(-x1) y2 = np.cos(2 * np.pi * x2) plt.subplot(2, 1, 1) plt.plot(x1, y1, 'ko-') plt.title('A tale of 2 subplots') plt.ylabel('Damped oscillation') plt.subplot(2, 1, 2) plt.plot(x2, y2, 'r.-') plt.xlabel('time (s)') plt.ylabel('Undamped') plt.show()Mi pregunta es: ¿Qué necesito cambiar para tener las parcelas una al lado de la otra?
Cambie la configuración de su subparcela a:
plt.subplot(1, 2, 1) ... plt.subplot(1, 2, 2) Los parámetros para la subplot son: número de filas, número de columnas y en qué subparcela se encuentra actualmente. Entonces 1, 2, 1 significa "una figura de 1 fila y 2 columnas: ve a la primera subparcela". Entonces 1, 2, 2 significa "una figura de 1 fila y 2 columnas: ve a la segunda subparcela".
Actualmente está solicitando un diseño de 2 filas y 1 columna (es decir, una encima de la otra). En su lugar, debe solicitar un diseño de 1 fila y 2 columnas. Cuando lo hagas, el resultado será:
Para minimizar la superposición de subparcelas, es posible que desee iniciar un:
plt.tight_layout()antes del show. Flexible:
Consulte esta página: http://matplotlib.org/examples/pylab_examples/subplots_demo.html
plt.subplots es similar. Creo que es mejor ya que es más fácil configurar los parámetros de la figura. Los primeros dos argumentos definen el diseño (en su caso, 1 fila, 2 columnas), y otros parámetros cambian características como el tamaño de la figura:
import numpy as np import matplotlib.pyplot as plt x1 = np.linspace(0.0, 5.0) x2 = np.linspace(0.0, 2.0) y1 = np.cos(2 * np.pi * x1) * np.exp(-x1) y2 = np.cos(2 * np.pi * x2) fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(5, 3)) axes[0].plot(x1, y1) axes[1].plot(x2, y2) fig.tight_layout()Al apilar subparcelas en una dirección, la documentación de matplotlib recomienda desempaquetar inmediatamente si solo está creando algunos ejes.
fig, (ax1, ax2) = plt.subplots(1,2, figsize=(20,8)) sns.histplot(df['Price'], ax=ax1) sns.histplot(np.log(df['Price']),ax=ax2) plt.show()