gnuplot作为常用的绘图工具之一,它除了可以直接作为绘图工具,也可以使用C语言、Java、Python等编程语言产生的数据进行绘图。
我们有时候需要实现数据的图像化,可以让我们更直观观察数据变化情况,所以学会使用gnuplot进行C语言绘图是很有用的。这里我们通过画一个正弦函数的图像,来练习一下怎么使用gnuplot对C语言产生的数据进行绘图。
x为弧度,那么正弦函数表达式为:y=sin(x*(pi/180))
1. C语言编译运行并产生.dat文件
① C语言程序代码
x取[0,360],用C语言编程,计算并输出360个弧度值处的函数值。
#include <stdio.h>
#include <math.h>
#define PI 3.1415926
int main()
{
for (int i = 0; i <361; i++)
{
printf("%.16f %.16f\n",(float)i,sin(i*(PI/180)));
}
return 0;
}
我用的是NotePad++编辑器,然后在路径E:\tcc_project\sin路径下将C语言程序代码保存为sin.c文件。
② 编译产生.exe文件
打开命令行窗口,进入sin.c文件存放路径。
C:\Users\Administrator>E:
E:\>cd E:\tcc_project\sin
生成.exe并运行
E:\tcc_project\sin>tcc sin.c –o sin.exe
E:\tcc_project\sin>sin.exe
输出360行数据,部分如下图所示:
③ 生成.dat文件
E:\tcc_project\sin>sin.exe > sin.dat
这个sin.dat文件可以用文本编辑器打开,共有360行数据。
2. 配置gnuplot并完成绘图
① 配置gnuplot
安装gnuplot后,将gnuplot.exe所在的路径添加到Windows的路径path中,使其能在命令窗口执行。
路径添加方法:
我的电脑->右键->属性->高级系统设置->环境变量->path编辑
在后面添加上gnuplot.exe所在的路径,我的是D:\gnuplot\bin,如图所示:
在sin.dat所在的路径下,从命令窗口执行gnuplot.exe(输入gnuplot命令),如下图所示:
在gnuplot命令行提示符gnuplot>下输入作图指令:
gnuplot>plot [0:360] [-1:1] "sin.dat" u 1:2 w l
回车后就得到了最后的图像。
3. 不产生.dat文件的绘图方法
除了上面的方法,我们也可以不用产生.dat文件,在产生.exe文件之后,直接执行产生数据,利用这些数据作图。此时的作图指令为:
gnuplot>plot [0:360] [-1:1] "<sin.exe" u 1:2 w l
也就是将sin.dat改为<sin.exe既可,注意前面有无”<”的区别。