C++ matplotlib 的接口

发布于 2024-12-13 15:48:55 字数 62 浏览 0 评论 0原文

我想知道是否有一个可以从 C++ 使用的 matplotlib 接口。 (也许类似于 gnuplot 的东西)

I was wondering if there's an interface to matplotlib that can be used from C++. (Perhaps something similar to what gnuplot has)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

书间行客 2024-12-20 15:48:55

基于这个SO问题,您可以使用字符串:

对于静态数据,这非常简单:

#include "Python.h"

int main()
{
   Py_Initialize();
   PyRun_SimpleString("import pylab");
   PyRun_SimpleString("pylab.plot(range(5))");
   PyRun_SimpleString("pylab.show()");
   Py_Exit(0);
   return 0;
}

它变得有点棘手,但对于变量数据仍然可以,只需将其连接到字符串即可。

#include <string>
#include "Python.h"

using namespace std;

int main()
{
   Py_Initialize();
   int x[5] = {0, 1, 2, 3, 4};
   int y[5] = {5, 1, 7, 5, 1};
   string command = "pylab.plot([";
   for(int i = 0; i < 4; i++) {
       command += x[i];
       command += ", ";
   }
   command += x[4];
   command += "], [";
   for(int i = 0; i < 4; i++) {
       command += y[i];
       command += ", ";
   }
   command += y[4];
   command += "])";
   PyRun_SimpleString("import pylab");
   PyRun_SimpleString(command.c_str());
   PyRun_SimpleString("pylab.show()");
   Py_Exit(0);
   return 0;
}

(请注意,我没有检查这个错误,所以里面可能有一些错误,但你明白了,是的,这是一个非常丑陋的解决方案)。

Based on this SO question, you can use strings:

For static data, it's really easy:

#include "Python.h"

int main()
{
   Py_Initialize();
   PyRun_SimpleString("import pylab");
   PyRun_SimpleString("pylab.plot(range(5))");
   PyRun_SimpleString("pylab.show()");
   Py_Exit(0);
   return 0;
}

It gets a bit more tricky, but still possible with variable data, just concatenate it to a string.

#include <string>
#include "Python.h"

using namespace std;

int main()
{
   Py_Initialize();
   int x[5] = {0, 1, 2, 3, 4};
   int y[5] = {5, 1, 7, 5, 1};
   string command = "pylab.plot([";
   for(int i = 0; i < 4; i++) {
       command += x[i];
       command += ", ";
   }
   command += x[4];
   command += "], [";
   for(int i = 0; i < 4; i++) {
       command += y[i];
       command += ", ";
   }
   command += y[4];
   command += "])";
   PyRun_SimpleString("import pylab");
   PyRun_SimpleString(command.c_str());
   PyRun_SimpleString("pylab.show()");
   Py_Exit(0);
   return 0;
}

(Please note that I didn't check this for bugs, so there may be some in there, but you get the idea, and yes, it's a very ugly solution).

半仙 2024-12-20 15:48:55

这是老问题,但是有 C++ api 可以使用 Mathplot: matplotlib-cpp 从 2014 年开发

It is old question, but there is C++ api to use Mathplot: matplotlib-cpp developed from 2014

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文