我认为对于已经使用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”应用于该文件,但是对于每个交互我都需要创建很多文件(因为我将有多个向量),我不想使用这种解决方案。
我想,可能没有一种超级简单的方法将3D点的向量插入gnuplot中,但是只要我知道如何使用X、Y和Z坐标至少“splot”两个数字,我就可以解决这个问题。