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.

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.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, puedes utilizar la función close() para eliminar la subtrama en la parte del else. 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()

Comments are closed.