首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python可视化的精巧工具

用Python可视化的精巧工具
EN

Stack Overflow用户
提问于 2012-11-20 20:17:23
回答 3查看 868关注 0票数 1

我想写的电子学习应用程序负责可视化排序算法,和测试的有效性。我将使用Python (PyQt),但是使用任何漂亮的工具来使这个简单可视化将是很棒的。本可视化的目的是展示工作排序算法的步骤。

你知道用Python制作简单的可视化、动画的工具吗?也许PySide有什么要做的可视化工作?

EN

回答 3

Stack Overflow用户

发布于 2012-11-20 23:55:30

您可以使用matplotlib及其动画功能:

代码语言:javascript
复制
import matplotlib.pyplot as plt
import matplotlib.animation as animation

random_list = [10,3,5,4,9,1,6,7,2,8]

def bubble_sort():
    data = random_list
    for i in range(len(data)-1):
        for j in range(i, len(data)-1):
            a, b = data[j], data[j+1]
            if a > b:
                data[j], data[j+1] = b, a
                yield data

fig = plt.figure()
ax = fig.add_subplot(111)
def update(data):
    ax.clear()
    ax.hlines(range(len(data)), 0, data, 'red')
    ax.set_ylim(-0.5, 9.5)
update(random_list)

ani = animation.FuncAnimation(fig, update, bubble_sort, interval=250)
plt.show()

您只需更改bubble_sort()以实现其他算法,并在每次迭代时生成要绘制的数字列表。

matplotlib也可以是嵌入PySide,但我没有测试它。

票数 2
EN

Stack Overflow用户

发布于 2012-11-20 20:35:18

PySide只是Qt的一个薄包装,Qt没有任何内置的算法可视化支持。它是为构建传统的懦夫 GUI而设计的--也就是说,窗口中充满了诸如文本框或滑块之类的小部件。

您可以通过将每个可视化对象表示为一个小部件并手动移动这些小部件来激活Qt,或者您只需创建空白画布并在顶部绘制动画,但无论哪种方式,Qt对您都没有太大的帮助。

像PyGame这样的面向游戏的库可能更合适--您可以将每个对象表示为一个精灵,并使用雪碧动画工具。

或者,您可以寻找可视化库,而不是通用GUI库。

票数 1
EN

Stack Overflow用户

发布于 2012-12-08 16:54:55

Qt允许您以两种不同的方式创建UI:

  1. 基于小部件,这允许您使用静态UI创建常规应用程序(QPushButton,QTextEdit,.)。使用这些UI组件执行动画可能很麻烦。
  2. 声明性UI,我们使用QML ()创建动态UI (具有大量动画/转换的UI)。看看QML实例

QML允许您快速创建UI,并轻松地将其动画化。您可以在应用程序中使用QDeclarativeView在PySide中加载和显示QML。

您可以通过QObject的信号插槽机制或属性将数据(数字列表)从Python公开到QML。在这个储存库中可以找到许多例子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13481378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档