如何解决动画Matplotlib图
我正在尝试可视化排序算法,并且可以使用updateGraph方法放入新值,但是如何将这些值放入Graph中?该方法内部的plt.show()无法正常工作。我读了一些有关动画方法的内容,但我并不太了解,因此非常感谢帮助
def updateGraph(list): plt.bar(range(0,int(size)),list) plt.show()
解决方法
一个选择是清除轴并为每次迭代绘制一个新的条形图。
请注意,我还添加了public function productsArray($api,$args)
{
$test = array("3300-0021-PC","PRIMA802","3633-6021/4","3652-5023/3","3652-5021/3");
$test = json_encode($test);
$db = $GLOBALS['db']->getConnection();
$result = [];
$rowData = [];
$query .= "SELECT
p.id,p.name
FROM
p_product p
WHERE
JSON_SEARCH(".$test.",'one',p.name) IS NOT NULL
AND p.deleted = ?";
$stmt = $db->executeQuery($query,array(0));
if ($stmt->rowCount() > 0) {
foreach($stmt->fetchAll() as $row) {
foreach ($row as $key => $val) {
$rowData[$key] = $val;
}
$result['records'][] = $rowData;
}
$result['Total'] = $stmt->rowCount();
return $result;
}
return false;
}
,因此请显示动画。
plt.pause()
不清除图形而是更新条形可能会更快:
from matplotlib import pyplot as plt
import random
size = 10
fig,ax = plt.subplots()
plt.title("Bubble Sort Visualization")
plt.xlim((-0.6,size-0.4))
plt.ylim((0,size))
def updateGraph(lst):
plt.cla()
plt.bar(range(0,int(size)),lst)
plt.pause(0.2) # Choose smaller time to make it faster
plt.show()
def bubbleSort(lst):
n = len(lst)
elementsInPlace = 0
comparisonCount = 0
while n > 1:
for i in range(len(lst) - elementsInPlace - 1):
if lst[i] > lst[i + 1]:
comparisonCount += 1
lst[i],lst[i + 1] = lst[i + 1],lst[i]
updateGraph(lst)
else:
comparisonCount += 1
n -= 1
elementsInPlace += 1
return lst
randomlist = random.sample(range(1,int(size) + 1),int(size))
bubbleSort(randomlist)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。