我是gnuplot和Linux的完整菜鸟.我需要为我将使用C++的项目绘制科学图形.在寻找各种可用的绘图选项后,由于其功能和图形质量,我决定使用gnuplot进行绘图.所以我下载了gnuplot作为程序,可以使用.dat文件绘制图形,但是我需要在C++中绘制图形而不显式启动gnuplot.是否可以使用gnuplot绘制动态图?我还想绘制解决方案,就像它为每个时间步计算一样!
我开始知道gnuplot-iostream接口使这成为可能.但是我根本不明白如何为C++安装这个库.我不明白Git,或网站上发布的任何能够配置该库的内容.任何人都可以指点教程/如何记录相同的内容?我有Ubuntu 12.04和Windows 8.1.
是否可以使用IDE配置此库(我使用的是代码:: blocks),如果是,可以如何完成?
首先gnuplot-iostream依赖于Boost库,它是一个非常常见的库,但它不与C++编译器结合在一起,因此请确保它已正确安装.
显然它也需要gnuplot:如果安装正确,你应该可以从终端启动它.
然后将此最小示例粘贴到main.cpp文件中:
#include <vector>
#include <utility>
#include "gnuplot-iostream.h"
int main() {
std::vector<std::pair<double,double>> data;
data.emplace_back(-2,-0.8);
data.emplace_back(-1,-0.4);
data.emplace_back(0,-0);
data.emplace_back(1,0.4);
data.emplace_back(1,0.8);
Gnuplot gp;
gp << "plot [-5:5] sin(x) tit 'sin(x)', '-' tit 'data'\n";
gp.send1d(data);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
将标题保存gnuplot-iostream.h在同一文件夹中并使用以下代码编译:
g++ -std=c++11 main.cpp -o main -lboost_iostreams -lboost_system -lboost_filesystem
Run Code Online (Sandbox Code Playgroud)
在运行时,./main您应该获得正弦函数和几个点的图.
| 归档时间: |
|
| 查看次数: |
5321 次 |
| 最近记录: |