Я думаю, что это может быть очень простой вопрос для кого-то, кто уже использовал команды gnuplot и "splot", но я не могу понять это сейчас, так как это мой первый день использования этой программы.
Я добился связывания своего проекта c ++ с gnuplot, поэтому я могу создать Datafile.dat в следующем формате:
# Xcoord Ycoord Zcoord
1 2 1
2 1 1
3 1 1
3 2 2
3 3 3
И в моем файле C ++ я делаю:
#include "gnuplot.h"
#include <iostream>
using namespace std;
int main() {
Gnuplot plot;
plot("set border 4095");
plot("splot \"C:/\\Users/\\lRaulMN/\\Desktop/\\Datafile.dat\" with lines");
return 0;
}
Это отлично работает, и я получаю это:
Теперь вопрос: учитывая 5 точек, которые я использую, есть ли способ разбить эти числа без необходимости создания Datafile.dat?
Потому что в будущем в моем коде будет что-то вроде этого:
#include "gnuplot.h"
#include <iostream>
#include <vector>
using namespace std;
typedef struct {
double Time;
double X;
double Y;
double Z;
} DimensionalPoint;
int main() {
Gnuplot plot;
plot("set border 4095");
vector<DimensionalPoint> test;
plot("splot \"C:/\\Users/\\lRaulMN/\\Desktop/\\Datafile.dat\" with lines");
return 0;
}
Таким образом, моя идея состояла в том, чтобы заполнить тестовый вектор числами (вычислите их в моем коде c ++), а затем как-нибудь вызвать splot и представить эти числа.
Первой идеей, которая пришла в голову, было создание файла с числами (в проекте c ++ при выполнении), а затем создание «splot» для этого файла, однако я бы создавал много файлов для каждого взаимодействия (потому что У меня будет несколько векторов) и я не хочу в конечном итоге использовать это решение.
Я думаю, что не будет супер простого способа вставить вектор трехмерных точек в gnuplot, но я могу с этим справиться, как только я знаю, как "разбить" по крайней мере два числа на X, Y и Z координаты.