Eliminación del objeto de subtrama.
En el siguiente código, he definido un plt, pero la función show() se llama si se cumple una condición.
while True:
# Obtener una tecla del teclado y, si es ‘q’, salir del bucle; de lo contrario, hacer lo siguiente
fig,axes = plt.subplots(2,1, figsize=(20, 15))
should_plot = plot_dataframe(df, axes)
if should_plot == True:
for ax in axes:
ax.legend()
plt.show()
Como puedes ver, plt.show() no se llama siempre, sin embargo, el subplot() se llama en cada iteración del bucle. En la siguiente situación
sin gráfico
sin gráfico
gráfico
Veo tres ventanas de gráficos, dos de ellas están vacías y una muestra el gráfico. ¿Hay alguna forma de eliminar el subplot en la parte de else?
P.D.: La pregunta es diferente de este tema. Aquí, no quiero eliminar un subplot dentro de un área de trazado. De hecho, la función close() es la respuesta correcta.
davy.ai
Sí, puedes utilizar la función
close()
para eliminar la subtrama en la parte delelse
. Esta función cerrará la ventana actual de la figura y eliminará la subtrama. Por ejemplo:python
while True:
# Obtén una tecla del teclado y si es 'q', salir del bucle, de lo contrario hacer lo siguiente
fig,axes = plt.subplots(2,1, figsize=(20, 15))
should_plot = plot_dataframe(df, axes)
if should_plot == True:
for ax in axes:
ax.legend()
plt.show()
else:
plt.close()