Как запустить marplotlib в режиме реального времени алгоритма? - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь создать визуализацию алгоритмов сортировки, чтобы обновлять в реальном времени. Как лучше всего обновить график во время функции? Этот алгоритм сортировки работает ниже, но построение графика - нет.

import numpy
from numpy.random import default_rng
from matplotlib import pyplot as plt
from matplotlib import style
import time
style.use('fivethirtyeight')

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
x_axis = numpy.arange(0, 20, 1)

# Update plot and wait 0.2 sec
def plot_now(A):

    ax1.clear()
    ax1.plot(x_axis,A)

    plt.show(block=False)
    time.sleep(0.1)

# Find pivot
def Partition(A,p,r):
    x = A[r]
    i = p-1

    for j in range(p, r):
        
        if A[j] <= x:
            i += 1
            plot_now(A)
            A[i],A[j] = A[j],A[i]

    plot_now(A)
    A[i+1],A[r] = A[r],A[i+1]
    return i+1

# Recursive QuickSort
def Quicksort(A,p,r):
    if(p < r):
        q = Partition(A,p,r)
        Quicksort(A,p,q-1)
        Quicksort(A,q+1,r)

# Randomly populate initial array
def populate(length):
    return default_rng().choice(length, size=length, replace=False)

if __name__ == "__main__":
    A = populate(20)

    print(A)
    Quicksort(A, 0, len(A)-1)
    print(A)
...