2011-04-01 128 views
1

R中打印时振荡,例如,使用包desolve,[R如何使振荡的外观更平滑的曲线

df1 <-function(t,y,mu)(list(c(y[2],mu*y[1]^3-y[1]+0.005*cos(t)))) 
library (deSolve) 
yini<-c(y1=0,y2=0) 
df2 <-ode(y=yini,func=df1, times=0:520,parms=0.1667) 
plot(df2,type="l",which="y1",ylab="Displacement",xlab="Time", main="") 

我得到褴褛的地块,如:

raggedy plot in R

代替一个平滑的阴谋(不是在R中完成),例如:

smooth plot not in R

有没有人知道一种方式来获得更平滑的情节在R而不是一个破旧的一个时显示振荡?请注意,这不仅仅是规模差异的问题,而且我也不在寻找平滑过滤器。

谢谢,

+0

你请在下列接受的答案,如果您满意吗?这将节省阅读你的文章的人给你答案的时间。 – GaBorgulya 2011-04-02 00:06:43

回答

7

我在R中生成了你的绘图并将其导出为PDF。我放大了它,它非常可爱。我看不到你在那里谈论的问题。因此,存在一些缩放问题或导致问题的光栅格式。也许你正在粘贴到Word中,这给你一个糟糕的光栅图像。 R在逻辑层面上制作的情节非常棒,尽管你发布了这个情节。它比你放置的比较情节更好。

您可能会以栅格格式生成绘图并且未设置足够高的分辨率和大小。尝试tiff('filname',1200,1200,300)以获得良好的光栅图像。我确实注意到,在导出为栅格格式时,很容易使您的绘图变得与默认的png或jpg设置混淆,只会抹掉东西。

也许你真的想以更高的分辨率在你的函数中进行采样,而不是在比较图中完成。如果是这样的话,那就相对容易一些。将0:520更改为seq(0,520,0.1)。这是一个更好的情节,如下图所示(比PDF,EPS或SVG更好)。

enter image description here

+0

感谢您提供非常有帮助的建议。我仍然感到困惑,因为我也保存为pdf(没有使用Word),仍然得到破烂不堪的情节。在您回复之后,我会再次进行检查。我尝试了更高分辨率的seq建议。它有帮助,但仍然有锯齿线(没有像你的情节)。我正在使用R和Windows 7的最新版本。是否有我需要选择的另一种设备或另一种保存为pdf的方式,而不是“c/osc.pdf”? – Carey 2011-04-01 20:29:17

+0

假设您使用的是PDF设备..不。现在这是一个Windows 7的PDF版本问题(我在OS X上制作的)。打印它会更好吗?我希望如果你尝试一个高分辨率的位图版本,你可能会更好。尝试使用上面给出的设置使用bmp或png设备(更好的是,1500,1500,300)。 – John 2011-04-01 21:04:18

+0

再次感谢您的宝贵时间和有益的建议。我尝试了PNG设备设置,但得到了和以前一样的情节。我会在MAC上试试看它是否是一个操作系统问题。 – Carey 2011-04-01 21:32:49