【发布时间】:2019-03-05 12:43:55
【问题描述】:
我认为对于已经使用过 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 “绘制”至少两个数字,我就可以处理这个问题坐标。
【问题讨论】:
-
如果你有 Gnuplot 5+ 版,你可以内联数据。你可以看一个例子here
-
谢谢大家。我在这些链接中找到了很多信息。我会用解决方案来回答,但你帮了我很多!昨天没找到相关问题^^'