gnuplot安装使用

安装依赖库

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;
}

/*以下为main函数部分*/
std::vector<double> X_t, Y_t;
/*对所有 vector 插入数据*/

g1.set_grid();
g1.set_xlabel("X"); //设置x轴说明
g1.set_ylabel("Y"); //设置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种图样,我常用的是:

  1. lines: 将相邻的点以线条连接
  2. points: 将每一点以一符号绘上
  3. linespoints: 同时具有lines 及 points 的功能。

其他还包括

  • linestyle 连线风格(包括linetype,linewidth等)
  • linetype 连线种类
  • linewidth 连线粗细
  • linecolor 连线颜色
  • pointtype 点的种类
  • pointsize 点的大小

参考:C++ 调用Gnuplot实现图形绘制的过程