安装依赖库
1 2
| sudo apt-get install gnuplot sudo apt-get install gnuplot-x11
|
输入 gnuplot
,出现命令行,输入 plot sin(x)
,如果出现正弦曲线说明安装成功。
这样还没完,还需下载gnuplot,解压之后,输入 make
进行编译。如果在自己的项目需要使用gnuplot
,将gnuplot_i.hpp
复制到对应项目,在程序中加入 #include "gnuplot_i.hpp"
, 无需链接动态库, 这也是我使用它的主要原因,懒得改CMake
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| Gnuplot g1;
void plot(const vector<double>& Xs, const vector<double>& Ys, const string& comment, const string& style) { g1.set_grid(); g1.set_pointsize(3); g1.set_style(style).plot_xy(Xs, Ys, comment); }
void wait_for_key() { cout << "Press Enter to continue ..." <<endl; cin.clear(); cin.ignore(cin.rdbuf()->in_avail() ); cin.get(); return; }
std::vector<double> X_t, Y_t;
g1.set_grid(); g1.set_xlabel("X"); g1.set_ylabel("Y");
g1.set_style("lines").plot_xy(X_t, Y_t, "left"); plot(X_t, Y_t, "left", "points lc rgb 'red' pt 7");
wait_for_key();
|
图样(style): gnuplot 描绘数据数据图形是以读入档案中的坐标值后,以图样绘上。gnuplot可提供9种图样,我常用的是:
- lines: 将相邻的点以线条连接
- points: 将每一点以一符号绘上
- linespoints: 同时具有lines 及 points 的功能。
其他还包括
linestyle
连线风格(包括linetype,linewidth等)
linetype
连线种类
linewidth
连线粗细
linecolor
连线颜色
pointtype
点的种类
pointsize
点的大小
参考:C++ 调用Gnuplot实现图形绘制的过程