如何画出会动的曲线图?作图技术进阶之必备技能

如何画出会动的曲线图?作图技术进阶之必备技能

ps怎么将图层做动图_ps怎么做动图移动轨迹_ps和flash做gif动图

点击上方“科研充电宝”,可以添加关注。

画图是理工科工作者的必备技能,以前3M君给大家总结过画图常用软件:

也许你已能用它们熟练地画出美美的tif,jpg,bmp或者emf等格式的图片。

确实,以此用于发论文或写结题报告都应该已经够用了。

但是别忘了:无论毕业以后是继续学术、还是去企业上班,都可能会遇到各种需要做报告的情况。

比如毕业答辩、比如部门总结汇报、比如招标投标竞争……

这时候,如果能在做报告的PPT里面插入这样一副图:(各参数随时间的演化)

ps和flash做gif动图_ps怎么做动图移动轨迹_ps怎么将图层做动图

或者这样的动图:(随时间的增加,两根曲线或多根曲线的交点变化情况)

ps怎么将图层做动图_ps怎么做动图移动轨迹_ps和flash做gif动图

或者这样:

ps和flash做gif动图_ps怎么将图层做动图_ps怎么做动图移动轨迹

是不是瞬间感觉自己的报告高大上起来?

没错,看到你秀出来会动的曲线图之后,慧眼识才的领导眼前一亮、直接嘴动点赞、称许满满;中意了很久的男神女神,投来了崇拜和火辣的眼神;远处曾经嚣张的竞争对手一脸的失落,自叹技不如人在墙角默默流泪。

ps怎么将图层做动图_ps和flash做gif动图_ps怎么做动图移动轨迹

要的就是这种碾压的效果。(ps,以上情景纯属歪歪,若无雷同,概不负责…)

效果好是好,可问题是:

(1) 用什么方法能画出这样的图?

(2) 画这种图会不会很麻烦?

麻不麻烦取决于你用什么样的工具。

比如,如果打算采用Matlab,虽然用它自带的诸如movie2avi等函数也可以实现,但是效果并不见得很好。

再比如,如果打算用Flash做动画,那么就是高射炮打蚊子。

这里,隆重推荐今天的主角——gnuplot。

ps和flash做gif动图_ps怎么将图层做动图_ps怎么做动图移动轨迹

1. gnuplot的基本概念

把gnuplot看成gunplot的童鞋,你阅读速度有点略快啊。也许你最近有点焦虑、烦闷?别着急,一切都会好起来的。

gnuplot画出来的静态图长这样:

ps怎么将图层做动图_ps怎么做动图移动轨迹_ps和flash做gif动图

gnuplot是一个免费软件,可以在window,linux,mac等系统下使用。

它使用交互式介面,可以绘制数学函数2D或者3D图形,也可以从纯文字档读入数据、绘制统计图表等等,还包含数学计算、拟合等功能。

对于用惯了鼠标的童鞋而已,这里可能有个坏消息:gnuplot是基于命令行的交互式绘图软件。

打开一个终端,输入gnuplot,随着程序启动,会出现下面的信息:(如果是在Windows 电脑上,双击gnuplot.exe 后会自动打开一个命令行窗口)

ps和flash做gif动图_ps怎么将图层做动图_ps怎么做动图移动轨迹

不过不用太慌张,零基础的童鞋对照教程,大概只用不到半天的时间就能学会(教程在后面会提到)。

ps和flash做gif动图_ps怎么将图层做动图_ps怎么做动图移动轨迹

2. 简单的例子

采用gnuplot画动态曲线图的原理是:多次画图并把所有图片压缩成一个gif动画。具体可使用reread命令或者do for命令。

下面是一些动图的例子和代码,其它简单的曲线可以此类推:

(1) 随时间衰减的分布曲线图

ps怎么将图层做动图_ps怎么做动图移动轨迹_ps和flash做gif动图

settermgifanimateoptimize delay2size480,360

setoutput’movie.gif’

do for[i =0:400]{

t=i*0.02

plotsqrt(1/(1+t*t))*exp(-(x-t)**2/(1+t*t))lw2

}

setout

setterminalwxtenhanced

(2) 等高线及其二维投影随时间变化图

ps怎么将图层做动图_ps和flash做gif动图_ps怎么做动图移动轨迹

#set term gif animate optimize delay 10 size 480,480

#set output ‘movie.gif’

setpm3datb

setxr[-5:10]

setyr[-5:10]

setzr[0:1]

setcbr[0:1]

setisosamples50

dofor[i =0:50]{

t=i*0.05

splotsqrt(1/(1+t*t))*exp(-(x-t)**2/(1+t*t))*sqrt(1/(1+t*t))*exp(-(y-2*t)**2/(1+t*t))

}

#set out

#set terminal wxt enhanced

(3) 小行星轨迹图

ps怎么将图层做动图_ps怎么做动图移动轨迹_ps和flash做gif动图

#set term gif animate optimizedelay 5 size 960,720

#set output ‘movie.gif’

setparam

setsizeratio-1

setsamples10000

e =1

omega=0.1

settr[1:600]

do for[i =1:200]{

plote*cos(omega*t)/sqrt(t),sin(omega*t)/sqrt(t)

setlabel1pointpt7ps3ate*cos(omega*i*3)/sqrt(i*3),sin(omega*i*3)/sqrt(i*3)

}

#set out

#set terminal wxt enhanced

(4) 两颗行星互相缠绕,最后坠毁在一起

ps和flash做gif动图_ps怎么做动图移动轨迹_ps怎么将图层做动图

setparam

setsamples10000

settr[0.01:1]

imax=100

tmax=20e0*pi

ht=tmax/real(imax)

#set term gif animate optimizedelay 6 size 600,600

#set output ‘orbit.gif’

do for[i=1:imax]{

th(t,i)=t*real(i)*ht

plot10e0*sin(th(t,i))/th(t,i),10e0*cos(th(t,i))/th(t,i),

10e0*sin(th(t,i)-pi)/th(t,i),10e0*cos(th(t,i)-pi)/th(t,i)lt1lc2

}

#set out

#set terminal wxt enhanced

ps和flash做gif动图_ps怎么将图层做动图_ps怎么做动图移动轨迹

3. 复杂的例子

除了上面正经的动态曲线图,gnuplot还可以用来干一些不正经的事情。比如:

(1) 巫婆带着乌鸦海上飞

ps怎么将图层做动图_ps怎么做动图移动轨迹_ps和flash做gif动图

(2) 超级马里奥从洞里钻出来

ps怎么做动图移动轨迹_ps和flash做gif动图_ps怎么将图层做动图

(3) 电磁炮

ps怎么将图层做动图_ps怎么做动图移动轨迹_ps和flash做gif动图

(4) 时钟

ps和flash做gif动图_ps怎么做动图移动轨迹_ps怎么将图层做动图

(5) 骑摩托车上下坡

ps和flash做gif动图_ps怎么将图层做动图_ps怎么做动图移动轨迹

(6) 跳舞的星星

ps和flash做gif动图_ps怎么将图层做动图_ps怎么做动图移动轨迹

看到这里,是不是觉得这小软件还有那么点意思?教程、软件、以及例子,可在公众号对话框界面回复gnuplot获取。

画动态曲线图的技术,你值得拥有。

(END)

ps和flash做gif动图_ps怎么将图层做动图_ps怎么做动图移动轨迹

ps和flash做gif动图_ps怎么做动图移动轨迹_ps怎么将图层做动图

1论文写作

2实用妙招

3作图技巧

4编程技巧

5技术宅

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注