Pregunta

mi problema es el GIL, por supuesto. Mientras estoy analizando los datos que sería bueno presentar algunas parcelas en el medio (lo que no es demasiado aburrida la espera de los resultados)

Sin embargo, el GIL evita que esto (y esto es con lo que yo hasta el punto de preguntarme si Python era una idea tan buena en el primer lugar).

I sólo puede mostrar la trama, espera hasta que el usuario la cierra y cálculos comenzará después de eso. Una pérdida de tiempo, obviamente.

Ya intentó el subproceso y los módulos de multiprocesamiento, pero parece que no puede llegar a trabajar.

¿Alguna idea sobre éste? Gracias

Edit: Ok, así que no es el GIL, sino show ()

.
¿Fue útil?

Solución

Esto no es un problema desde matplotlib o el GIL.

En matplotlib Puede abrir tantas figuras como usted desee y hacer que en la pantalla mientras la aplicación continúa haciendo otras cosas.

Debe usar matplotlib en modo interactivo. Esto probablemente es su problema.

from matplotlib import interactive
interactive(True)

este debe estar en la parte superior de las importaciones

Otros consejos

Esto no tiene nada que ver con el GIL, basta con modificar el código de análisis para que sea actualizar el gráfico de vez en cuando (por ejemplo cada N iteraciones).

Sólo entonces si ves que dibujar el gráfico retarda el código de análisis demasiado, poner el código de actualización del gráfico en un subproceso con multiprocesamiento.

Creo que tendrá que poner la gráfica en un sistema de ventanas adecuado, en lugar de depender de la incorporada en el código de programa.

Tal vez se pega la .show () en otro hilo sería suficiente?

El GIL es irrelevante -. Tienes una llamada de bloqueo show (), por lo que necesita para manejar esa primera

Parece que el método draw () puede eludir la necesidad de show ().

La única razón por la izquierda para .show () en la secuencia de comandos es dejar que se haga el bloqueo de parte para que las imágenes no desaparecerá cuando el guión llega a su fin.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top