C++;matplotlib的接口 我想知道是否有一个可以用于C++的MaMattLIB接口。(可能类似于gnuplot的功能)

C++;matplotlib的接口 我想知道是否有一个可以用于C++的MaMattLIB接口。(可能类似于gnuplot的功能),c++,binding,interface,matplotlib,C++,Binding,Interface,Matplotlib,基于,您可以使用字符串: 对于静态数据,这非常简单: #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 "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;
}
#包括
#包括“Python.h”
使用名称空间std;
int main()
{
Py_初始化();
int x[5]={0,1,2,3,4};
int y[5]={5,1,7,5,1};
string command=“pylab.plot([”;
对于(int i=0;i<4;i++){
命令+=x[i];
命令+=“,”;
}
命令+=x[4];
命令+=“],[”;
对于(int i=0;i<4;i++){
命令+=y[i];
命令+=“,”;
}
命令+=y[4];
命令+=“])”;
PyRun_SimpleString(“进口pylab”);
PyRun_SimpleString(command.c_str());
PyRun_SimpleString(“pylab.show()”);
Py_出口(0);
返回0;
}

(请注意,我没有检查bug,所以可能有一些,但是你知道了,是的,这是一个非常丑陋的解决方案)。

< P>这是一个老问题,但是有C++ API使用MathPosits:从2014版/P>中开发出一个解决这个问题的方法,希望这有帮助。这个链接已经死了。(问题被删除)@Leif:这是一个很好的答案+1,但是,我相信它不会扩展,如果我的值列表是几千,它会工作得很好,但是如果它有数百万个点,可能会有点不同。我真的希望有本地绑定,比如一个头或者一些这样的调用,它可以调用下面的MatpTLIB例程,因为它们都是用C和C++编写的,并且在Python中调用,调用它们的方式,你会显示它是这样的:C++ +-python -> C++,是的,我敢说MatpTLIB是用C++制作的。但是完全有可能它是专门围绕python/CAPI构建的,并且不是非常模块化的(您可以查看源代码来了解)。如果是这样的话,我并不完全惊讶于它需要python。您可以尝试做的另一件事是尝试直接使用python/c api与matplotlib对话,而不是使用字符串。虽然我不知道该怎么做。