我正在编写泡沫排序算法,它接收一个随机的整数列表,按递增的顺序排序,并将排序后的整数列表绘制成柱状图的Y值。我的第一个条形图是未排序的列表,第二个是已排序的列表。
我希望图表能够实时更新。我将通过向matplotlib提供排序越来越多的列表来实现这一点。(即每次都是新的列表)
我查了很多关于在matplotlib中更新图表的教程,但它们大多是针对像散点图那样的,一次只添加一个点。我还看到 更新一个matplotlib的条形图? 但我一生都无法理解它......。
那么,我怎样才能使这个条形图实时更新呢?谢谢你!"。
我的代码如下。你可以忽略排序的算法。你所需要知道的是,它返回一个排序后的数字列表,其形式为[1, 2, 3, 4, 5]。
import random
import matplotlib.pyplot as plt
import numpy as np
print("bubble sort")
plt.style.use('fivethirtyeight')
n = int(input("How many items would you like to sort? "))
list_num = np.random.randint(0,500, n)
orig_list_num = list_num.copy()
def is_sorted(list_num):
Flag = True
while Flag == True:
Flag=False
for i in range(0, (len(list_num))-j):
if i+1 >= len(list_num):
break
if list_num[i] > list_num[i+1]:
tempvar=list_num[i]
list_num[i] = list_num[i+1]
list_num[i+1] = tempvar
Flag=True
return list_num
list_num = is_sorted(list_num)
#unsorted graph
indices = np.arange(n)
plt.subplot(1, 2, 1)
plt.bar(indices, orig_list_num)
plt.xlabel("Unsorted")
#sorted graph
plt.subplot(1, 2, 2)
plt.bar(indices, list_num)
plt.xlabel("Sorted")
plt.show()