gnuplot是一个命令行的交互式绘图工具。用户通过输入命令,可以逐步设置或修改绘图环境,并以图形描述数据或函数,使我们可以借由图形做更进一步的分析。
gnuplot是由Colin Kelly和Thomas Williams于1986年开始开发的科学绘图工具,支持二维和三维图形。它的功能是把数据资料和数学函数转换为容易观察的平面或立体的图形,它有两种工作方式,交互式方式和批处理方式,它可以让使用者很容易地读入外部的数据结果,在屏幕上显示图形,并且可以选择和修改图形的画法,明显地表现出数据的特性。
本文将描述如何在CentOS系统上编译和安装gnuplot,并且还会提供一个简单的绘图示例。
一、环境描述
CPU:单核 2.4GHz
内存:DDR3 1333 2GB
硬盘:120GB
IP地址:192.168.21.134
操作系统:CentOS 6.6 x86_64 Desktop
2. 编译环境
GCC:4.4.7 20120313
YUM源:官方Base源 + EPEL源 + RepoForge源
3. gnuplot
版本:gnuplot-5.0.5.tar.gz
安装方式:编译安装(本文内容)
二、编译选项
在配置gnuplot的源码时,可以运行以下命令,查看编译和安装的选项:
./configure –help
常用的编译选项如下所述:
–prefix=PREFIX
将gnuplot安装在PREFIX指定的目录中,本文使用/usr/local/gnuplot目录。
–with-linux-vga
使用Linux的SVGA控制台驱动(需要安装svgalib-devel包)。
–with-texdir
使用latex样式文件(需要安装texlive和texlive-latex包)。
–with-kpsexpand
在运行时查找kpsexpand,它是一种文件查找工具。
–with-gihdir=DIR
后缀为.gih的帮助文件的存储位置,本文使用/usr/local/gnuplot/share/gnuplot/5.0目录。
–with-readline=XXX
这个选项有多种取值:
builtin,使用内建的readline程序;gnu,使用GNU的readline程序库;bsd,使用NetBSD的editline程序库;DIR,使用指定位置的readline程序。本文将这个选项设置为gnu。
–with-gd
使用gd程序库,它是一种图像工具库。
–with-cwdrc
在当前目录中检查.gnuplot文件,但是会有一定的安全风险。
–with-bitmap-terminals
使用点阵打印机(Dot Matrix Printer)和可移植位图(Portable Bit Map)。
–with-caca
使用caca程序库,它能够将像素信息转换为彩色的ASCII代码。
–without-row-help
按列格式化帮助和副标题表格。
–enable-backwards-patibility
兼容较老版本的语法。
–with-gpic
使用gpic终端。
–with-mif
使用mif终端(FrameMaker 3)。
–with-ggi
启用ggi(General Graphics Interface,通用图形接口)驱动程序。
–with-tutorial
在编译时拷贝LaTeX的教程文件。
–with-QT=XXX
这个选项有多种取值:
qt4,使用qt4终端;qt5,使用qt5终端;no,不使用QT终端。
本文使用qt4终端。
LIBCERF_CFLAGS=XXX
为C编译器指定LIBCERF的头文件。
LIBCERF_LIBS=XXX
为链接器指定LIBCERF的库文件。
三、安装流程
1. 安装EPEL和Remi软件源
在Shell中运行以下命令,安装第三方软件源:
rpm -Uvh rpms.famillecollet./enterprise/remi-release-6.rpm
2. 安装开发工具
在Shell中运行以下命令,安装开发和编译环境:
yum groupinstall -y \”Development Tools\”
3. 安装依赖包
在Shell中运行以下命令:
yum install -y texlive texlive-latex readline-devel zlib-devel gd-devel lua-devel cairo-devel pango-devel wxGTK-devel qt-devel libcaca-devel svgalib-devel
4. 编译安装libcerf
libcerf是一个独立的数学程序库,它和Dawson、Faddeeva和Voigt函数一起实现了一种高效和精确的复杂误差函数(Complex Error Function,缩写为cerf)。在Shell中运行以下命令,编译安装libcerf:
cd /root/Downloads
wget 120.52.72.22/jaist.dl.sourceforge.net/c3pr90ntc0td/project/libcerf/libcerf-1.3.tgz
tar xvzf libcerf-1.3.tgz
cd libcerf-1.3
./configure
make && make install
echo \”export LD_LIBRARY_PATH=/usr/local/lib\” /etc/profile
source /etc/profile
5. 编译安装latex2html
LaTeX2HTML是一种能够将LaTeX文档转换为HTML网页的工具。在Shell中运行以下命令,编译安装LaTeX2HTML:
cd /root/Downloads
wget mirror.unl.edu/ctan/support/latex2html/latex2html-2016.tar.gz
tar xvzf latex2html-2016.tar.gz
cd latex2html-2016
./configure
make && make install
6. 编译安装ggi
GGI(General Graphics Interface,通用图形接口)是一个开源项目,旨在开发一种能够在各种平台上运行的、可靠的、稳定的和快速的计算机图形系统。在Shell中运行以下命令,编译安装GGI:
cd /root/Downloads
wget 120.52.72.24/jaist.dl.sourceforge.net/c3pr90ntc0td/project/ggi/bundle/GGI-2.2.2/ggi-2.2.2-bundle.src.tar.gz
tar xvzf ggi-2.2.2-bundle.src.tar.gz
cd ggi-2.2.2-bundle/libgii-1.0.2
./configure
make && make install
cd ../libggi-2.2.2
./configure
make && make install
7. 编译安装gnuplot
在Shell中运行以下命令,编译安装gnuplot:
cd /root/Downloads
wget 120.52.72.24/nchc.dl.sourceforge.net/c3pr90ntc0td/project/gnuplot/gnuplot/5.0.5/gnuplot-5.0.5.tar.gz
tar xvzf gnuplot-5.0.5.tar.gz
cd gnuplot-5.0.5
./configure –prefix=/usr/local/gnuplot –with-linux-vga –with-texdir –with-kpsexpand –with-gihdir=/usr/local/gnuplot/share/gnuplot/5.0 –with-readline=gnu –with-gd –with-cwdrc –with-bitmap-terminals –with-caca –without-row-help –enable-backwards-patibility –with-gpic –with-mif –with-ggi –with-tutorial –with-qt=qt4 LIBCERF_CFLAGS=’-I/usr/local/include’ LIBCERF_LIBS=’-L/usr/local/lib -lcerf’
make && make install
echo \”export PATH=$PATH:/usr/local/gnuplot/bin\” /etc/profile
source /etc/profile
8. 检查版本
在Shell中运行以下命令:
gnuplot –version
若返回信息如下图所示,则表示gnuplot安装成功:
至此,gnuplot已经编译安装完成,下面将通过一个小示例,简单说明gnuplot的使用方法。
四、绘图示例
本文会通过一个数据文件进行绘图,这是一个关于北京市一年中每月平均降水量的数据,我们的数据以纯文本方式储存在文件名为datafile.dat的文件中,存储在/root/Downloads目录中。文件全文如下所示:
1 2.5
2 5.1
3 10.2
4 25.4
5 27.9
6 71.1
7 175.3
8 182.9
9 48.3
10 17.8
11 5.1
12 2.5
在Shell中运行以下命令,进入gnuplot的命令行:
cd /root/Downloads/
gnuplot
下面开始画图,在gnuplot命令行中运行以下命令:
set xlabel \”月份\”
set ylabel \”降水量(毫米)\”
set title \”北京市月平均降水量\”
unset key
set xrange [0.5:12.5]
set xtics 1,1,12
plot \”datafile.dat\” with linespoints linecolor 3 linewidth 2 pointtype 7 pointsize 2
上述每行代码的释义,如下所述:
第1行:设置X轴的注释;
第2行:设置Y轴的注释;
第3行:设置绘图的标题;
第4行:删除图例注释;
第5行:设置X轴的取值范围(也就是定义域);
第6行:设置X轴的最小主刻度、主刻度步长和最大主刻度;
第7行:根据datafile.dat数据文件绘图,指定点和线的样式,包括线色、线宽、点的类型和点的大小。
最后,可以得到以下的图形: