【发布时间】:2014-04-22 07:23:36
【问题描述】:
我想生成如下图:
这是一个演示小波函数的“拨号”和“平移”的图。这里的函数并不重要,重要的是如何生成这样的图。
谁能给我一个提示,这是最好的方法吗?如何获得图中的六个坐标轴?我应该以par(mfrow=c(3,3)) 开头吗?
到目前为止,我已经使用以下代码进行了管理:
mo<-function(t,trans=0,omega=6,j=0){
dial<-2*2^(j*.125)
sqrt((1/dial))*pi^(-1/4)*exp(1i*omega*((t-trans)/dial))*exp(-((t-trans)/dial)^2/2)
}
par(mfrow=c(3,3))
plot(seq(-10,10,length=1000),Re(mo(seq(-10,10,length=1000),trans=-3)),axes=F,xlab="",ylab="",type="l")
abline(h=0,v=0)
plot(seq(-10,10,length=1000),Re(mo(seq(-10,10,length=1000),trans=0)),axes=F,xlab="",ylab="",type="l")
abline(h=0,v=0)
plot(seq(-10,10,length=1000),Re(mo(seq(-10,10,length=1000),trans=3)),axes=F,xlab="",ylab="",type="l")
abline(h=0,v=0)
#############
plot(seq(-10,10,length=1000),Re(mo(seq(-10,10,length=1000),trans=-3,j=6)),axes=F,xlab="",ylab="",type="l")
abline(h=0,v=0)
plot(seq(-10,10,length=1000),Re(mo(seq(-10,10,length=1000),trans=0,j=6)),axes=F,xlab="",ylab="",type="l")
abline(h=0,v=0)
plot(seq(-10,10,length=1000),Re(mo(seq(-10,10,length=1000),trans=3,j=6)),axes=F,xlab="",ylab="",type="l")
abline(h=0,v=0)
#############
plot(seq(-10,10,length=1000),Re(mo(seq(-10,10,length=1000),trans=-3,j=6)),axes=F,xlab="",ylab="",type="l")
abline(h=0,v=0)
plot(seq(-10,10,length=1000),Re(mo(seq(-10,10,length=1000),trans=0,j=6)),axes=F,xlab="",ylab="",type="l")
abline(h=0,v=0)
plot(seq(-10,10,length=1000),Re(mo(seq(-10,10,length=1000),trans=3,j=6)),axes=F,xlab="",ylab="",type="l")
abline(h=0,v=0)
但这仍然不是我需要的
【问题讨论】:
-
“我自己可以做,但需要太多时间,我现在没有”暗示 SO 是一个代码编写服务,但它不是。你可能想改写一下。
-
查看
par中的fig选项。它允许您在该区域的某个百分比上进行绘图。在这种情况下,您可能希望在绘图区域的底部 80%(给予或接受)上使用mfrow = c(3, 3)。 -
我肯定会看看
ggplot2中的facet_wrap和facet_grid。这些处理了这类多面图的大量工作。 -
我从来没有使用过
ggplot2这个包,所以它会花费太多时间...... -
您的结果有什么问题?如果边距太宽,调整
par(mar=c(...)。