zoukankan      html  css  js  c++  java
  • 程序员的绘图利器 — Gnuplot

     

    介绍

    Gnuplot is a command-line program that can generate two- and three-dimensional plots.

    It is frequently used for publication-quality graphics as well as education.

    The program can be used both interactively and in batch mode using scripts.

    gnuplot is programmed in C.

    For script-driven graphics, gnuplot is by far the most popular program.

    先上一张效果图:

    用法

    (1)数据文件格式

    Discrete data contained in a file can be displayed by specifying the name of the data file (enclosed in quotes)

    on the plot or splot command line. Data files should have the data arranged in columns of numbers. Columns

    should be separated by white space (tabs or spaces) only, (no commas). Lines beginning with a # character

    are treated as comments and are ignored by gnuplot. A blank line in the data file results in a break in the line

    connecting data points.

    (2)风格定制

    一般需要指明:

    ranges of the axes

    labels of the x and y axes

    style of data point

    style of the lines connecting the data points

    title of the entire plot

    Plots may be displayed in one of styles:

    lines

    points

    linespoints

    impulses

    dots

    steps

    fsteps

    histeps

    errorbars

    xerrorbars

    yerrorbars

    xyerrorbars

    boxes

    boxerrorbars

    boxxyerrorbars

    financebars

    candlesticks

    vector

    实例

    (1)基础

    set title "Some math functions" // 图片标题

    set xrange [-10:10] // 横坐标范围

    set yrange [-2:2] // 纵坐标范围

    set zeroaxis // 零坐标线

    plot (x/4)*2, sin(x), 1/x // 画函数

    (2)三维曲线

    splot sin(x), tan(x) // 画sin(x)和tan(x)的三维曲线

    (3)多条曲线

    plot sin(x) title 'Sine', tan(x) title 'Tangent' // 画多条曲线,并且分别指定名称

    从不同数据文件中提取信息来画图:

    plot "fileA.dat" using 1:2 title 'data A',

            "fileB.dat" using 1:3 title 'data B'

    (4)点和线风格

    plot "fileA.dat" using 1:2 title 'data A' with lines,

            "fileB.dat" using 1:3 title 'data B' with linespoints

    可以使用缩写:

    using title and with can be abbreviated as u t and w.

    plot sin(x) with line linetype 3 linewidth 2

    或plot sin(x) w l lt 3 lw 2

    plot sin(x) with point pointtype 3 pointsize 2

    或plot sin(x) w p pt 3 ps 2

    颜色列表大全:

    http://www.uni-hamburg.de/Wiss/FB/15/Sustainability/schneider/gnuplot/colors.htm

    用法:lc grb "greenyellow"

    线条颜色,点的为pointtype

    linetype 1 // 红色

    linetype 2 // 绿色

    linetype 3 // 蓝色

    linetype 4 // 粉色

    linetype 5 // 比较浅的蓝色

    linetype 6 // 褐色

    linetype 7 // 橘黄色

    linetype 8 // 浅红色

    线条粗细,点的为大小pointsize

    linewidth 1 // 普通的线

    linewidth 2 // 比较粗

    linewidth 3 // 很粗

    (5)常用

    replot // 重绘

    set autoscale // scale axes automatically

    unset label // remove any previous labels

    set xtic auto // set xtics automatically

    set ytic auto // set ytics automatically

    set xtics 2 // x轴每隔2设一个标点

    set xlabel "x axe label"

    set ylabel 'y axe label"

    set label 'Yield Point" at 0.003,260 // 对一个点进行注释

    set arrow from 0.0028,250 to 0.003,280 // 两点之间添加箭头

    set grid // 添加网格

    reset // gnuplot没有缩小,放大后只能reset后重绘,remove all customization

    set key box // 曲线名称加框

    set key top left // 改变曲线名称位置

    set format xy "%3.2f" // x轴和y轴坐标格式,至少有3位,精确到小数点后两位

    quit、q、exit // 退出程序

    (6)绘制多个图

    set size 1,1 // 总的大小

    set origin 0,0 // 总的起点

    set multiplot // 进入多图模式

    set size 0.5,0.5 // 第一幅图大小

    set origin 0,0.5 // 第一幅图起点

    plot sin(x)

    set size 0.5,0.5

    set origin 0,0

    plot 1/sin(x)

    set size 0.5,0.5

    set orgin 0.5,0.5

    plot cos(x)

    set size 0.5,0.5

    set origin 0.5,0

    plot 1/cos(x)

    unset multiplot

    (7)输出文件

    set terminal png size 1024, 768 // 保存文件格式和大小

    set output "file.png" // 保存文件名称

    set terminal X11 // 重新输出到屏幕

    (8)脚本

    a.plt //后缀名为plt

    gnuplot> load 'a.plt'

    或gnuplot a.plt

    save "graph.gp"

    或save "graph.plt"

    传入参数

    call "a.plt" param1 param2

    param1、param2在a.plt中对应于$0、$1

    (9)字体设置

    输出错误:

    Could not find/open font when opening font "arial", using internal non-scalable font

    下载RPM包:

    wget http://www.my-guides.net/en/images/stories/fedora12/msttcore-fonts-2.0-3.noarch.rpm

    rpm -ivh msttcore-fonts-2.0-3.noarch.rpm

    设置环境变量:

    修改/etc/profile或~/.bashrc,这样设置可以固定下来。

    export GDFONTPATH="/usr/share/fonts/msttcore"

    export GNUPLOT_DEFAULT_GDFONT="arial"

    . /profile/etc

    OK,现在可以使用arial字体了。


     

    Reference

    [1]. http://en.wikipedia.org/wiki/Gnuplot

    [2]. http://people.duke.edu/~hpgavin/gnuplot.html

    [3]. http://blog.csdn.net/liyuanbhu/article/details/8502461

    [4]. http://linux.chinaunix.net/techdoc/develop/2009/07/21/1125242.shtml

    [5]. http://www.fnal.gov/docs/products/gnuplot/manual/

    [6]. gnuplot中文手册

  • 相关阅读:
    js遍历多层对象的键值对
    JS HEX十六进制与RGB, HSL颜色的相互转换【转】
    TortoiseSVN打分支、合并分支、切换分支【转】
    grid.containLabel
    安装谷歌vue-devtools调试插件
    使用Echarts遇到的问题
    理解js编程中函数的副作用
    git 镜像下载和安装
    欢迎来到博客园的世界
    c#制作一个屏幕保护程序
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4362173.html
Copyright © 2011-2022 走看看