python matplotlib: trazando en otro proceso

EDITAR: El requisito final para dicho programa Python es: recibir datos de UART desde un circuito externo (que probablemente esté equipado con algunos sensores), el programa procesará estos datos y dibujará una curva actualizada dinámicamente en la pantalla de la computadora.

Entonces, quiero trazar dinámicamente, el siguiente script de prueba inicia un subproceso, y en ese proceso, acepta datos del proceso primario a través de una Cola, y traza los datos en consecuencia.

Pero cuando se ejecuta el script, solo se muestra una figura vacía, puedo ver que la consola imprime los mensajes "put:" y "got:", lo que significa que tanto el padre como el subproceso se están ejecutando y comunicando, pero no sucede nada en la ventana de la figura de la GUI.

Además, la ventana de la GUI no responde y si hago clic en la ventana, se bloqueará.

El sistema es Windows 10, 64 bit. La versión de Python es 2.7 (32 bits)

¿Cuál es el problema aquí? ¡gracias!

import matplotlib.pyplot as plt
import multiprocessing as mp
import random
import numpy
import time

def worker(q):
    plt.ion()
    ln, = plt.plot([], [])
    plt.show()

    while True:
        obj = q.get()
        n = obj + 0
        print "sub : got:", n

        ln.set_xdata(numpy.append(ln.get_xdata(), n))
        ln.set_ydata(numpy.append(ln.get_ydata(), n))
        plt.draw()

if __name__ == '__main__':
    queue = mp.Queue()
    p = mp.Process(target=worker, args=(queue,))
    p.start()

    while True:
        n = random.random() * 5
        print "main: put:", n
        queue.put(n)
        time.sleep(1.0)

Respuestas a la pregunta(2)

Su respuesta a la pregunta