【发布时间】:2012-04-23 23:31:18
【问题描述】:
我正在使用 C++ 代码从套接字读取消息,并尝试使用 matplotlib 交互地绘制它,但似乎 Python 代码会阻塞主线程,无论我使用 show() 或 ion() 和 @ 987654326@。 ion() 和 draw() 在 Python 中不会阻塞。
知道如何在 C++ 代码中与 matplotlib 交互绘图吗?
举个例子就好了。
非常感谢。
【问题讨论】:
-
到目前为止,您在做什么但不起作用?你如何将数据输入python?目前还不清楚您实际上要做什么。例如,您是否尝试从 c++ 代码中获取数据并使用 IPython 绘制它?
-
啊,我想这和你的other question有关?
-
嗨,我想出了另一个问题的答案。这个问题是关于在 c++ 中使用 matplotlib,c++ 代码读取数据,并调用 matplotlib 来绘制交互式接收的数据。我称之为 PyRun_SimpleString("import pylab"); PyRun_SimpleString("pylab.ion()"); PyRun_SimpleString("pylab.plot(range(5))"); PyRun_SimpleString("pylab.draw()");即使使用draw(),它也会阻塞主c ++线程,而不是show()
-
所以这些调用是在一个新线程中进行的?听起来您与global interpreter lock 的互动很不利。不幸的是,我对 The Very High Level Layer 如何与 GIL 交互一无所知。我怀疑它会抓住它并在通话返回时将其归还。它回来了吗?如果你只是使用 python 进行绘图,为什么不将数据通过管道传输到 python 进程?
-
好的,据我了解,您有一些想要使用的 C++ 库,但是从 python 中绘制数据?你能不能不走另一条路——从 Python 中调用 C++ 库?这更容易做到,并且被更广泛地理解。
标签: c++ python matplotlib