• 每周一荐:用gnuplot绘制函数曲线


    喜欢数学的人,都说数学公式是世界上最简洁而深刻的诗,数学曲线是世界上最美的图画。本周给大家推荐一个开源的函数曲线绘制工具:gnuplot。别小看这个工具,年龄和我一般大,gnuplot 是在 1986 年由 Colin Kelley 和 Thomas Williams 最初开发的。许多参与者都在为不同的“终端”创建变种方面做出了贡献。在 1989 和 1990 年,这些变种被合并到 gnuplot 2.0 中。2004 年 4 月,发布了 4.0 版本。前缀gnu千万不要误解和Linux世界的GNU有关系,只是一个巧合,gnuplot被开发出来的时候,GNU不久才诞生。

    Gnuplot 是一种免费分发的绘图工具,可以移植到各种主流平台。它可以下列两种模式之一进行操作:当需要调整和修饰图表使其正常显示时,通过在 gnuplot 提示符中发出命令,可以在交互模式下操作该工具。或者,gnuplot 可以从文件中读取命令,以批处理模式生成图表。例如,如果您正在运行一系列的实验,需要每次运行后都查看结果图表;或者当您在图表最初生成很久以后需要返回图表修改某些内容时,批处理模式能力会特别有用。当在 WYSIWIG 编辑器中很难捕获用于修饰图表的鼠标单击事件时,您可以很容易地将 gnuplot 命令保存在文件中,六个月后将其加载到交互式会话中重新执行。

    启动界面:

    绘制二维函数曲线:

    damp(t) = exp(-s*wn*t)/sqrt(1.0-s*s)
    per(t) = sin(wn*sqrt(1.0-s**2)*t - atan(-sqrt(1.0-s**2)/s))
    c(t) = 1-damp(t)*per(t)
     
    wn = 1.0
    set xrange [0:13]
    set samples 50
    set dummy t
    set key box
     
    plot s=.1,c(t),s=.3,c(t),s=.5,c(t),s=.7,c(t),s=.9,c(t),s=1.0,c(t),s=1.5,c(t),s=2.0,c(t)

    绘制三维曲面:

    set samples 20
    set isosamples 20
    set view 60,30
    set xrange [-3:3]
    set yrange [-3:3]
    set zrange [-1:1]
    set ztics -1,0.5,1
    set grid z
    set border 4095
    splot sin(x) * cos(y)

    绘制直方图:

    set title "A demonstration of boxes in mono with style fill pattern"
    set samples 11
    set boxwidth 0.5 
    set style fill pattern border
    plot [-2.5:4.5] 100/(1.0+x*x) title 'pattern 0' with boxes lt -1, \
                     80/(1.0+x*x) title 'pattern 1' with boxes lt -1, \
                     40/(1.0+x*x) title 'pattern 2' with boxes lt -1, \
                     20/(1.0+x*x) title 'pattern 3' with boxes lt -1

    上面随便举了几个例子,gnuplot提供了很多函数曲线显示控制的命令。能绘制的曲线有两种:1> 数学函数;2> 数据文件。gnuplot用于数据可视化是个不错的选择。小巧但功能强大,推荐给喜欢数学的同学。

    更多资料:

    2012/05/17 21:30 于上海

  • 相关阅读:
    oracle 的一点累积
    ZT: 网页的一些技巧
    ZT: WEB学习资料
    开源java
    倒序显示文本
    plsql使用之debug
    转 一些shell经验
    lpad rpad
    2018.8.19 2018暑假集训之maxnum
    2018.8.17 题解 2018暑假集训之编辑距离
  • 原文地址:https://www.cnblogs.com/mywolrd/p/2506858.html
Copyright © 2020-2023  润新知