C ++ интерфейс для matplotlib - PullRequest
13 голосов
/ 06 ноября 2011

Мне было интересно, есть ли интерфейс для matplotlib, который можно использовать из C ++. (Возможно, что-то похожее на то, что есть у gnuplot)

1 Ответ

10 голосов
/ 07 ноября 2011

Исходя из этого 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;
}

(Обратите внимание, что я не проверял это на наличие ошибок, поэтому там могут быть некоторые, но вы понимаете,и да, это очень уродливое решение).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...