我正在编写代码以创建多个轮廓数据集。 我的步骤如下:
以下是示例:
使用
T<-runif()
生成原始数据。
编写描述由参数函数描述的轮廓的函数:
x<-function(t)
y<-function(t)
将实数向量
x,y
转换为复数x + 1i * y
。对数据应用一个复杂函数,例如,
sin
将实部和虚部提取到一组实数中
fx,fy
。绘制配对项
geom_path(x = fx,y = fy)
将它与颜色向量编码
以下是示例:
#Create data
#the parameter:
T<-sort(runif(100,min=-1, max=1))
#x(t), y(t)
xt.hor<-function(t,c){
return(c)
}
yt<-function(t,scale){
return (scale*t)
}
X1<-mapply(xt.hor,T,c=-10)
# X2, X3, X4
X5<-mapply(xt.hor,T,c=10)
YHor<-mapply(yt,T,scale=10)
df1<-data.frame(x1=X1,
#x2,x3,x4,
x5=X5,yh=YHor)
#convert to complex numbers:
toComplex<-function(x,y){complex(real=x,imaginary=y)}
z1<-mapply(toComplex,df1$x1,y=df1$yh)
#z2, z3, z4
z5<-mapply(toComplex,df1$x5,y=df1$yh)
fz1<-sapply(z1,sin)
#fz2,fz3,fz4
fz5<-sapply(z5,sin)
fx1<-sapply(fz1,Re)
#fx2,fx3,fx4
fx5<-sapply(fz5,Re)
fy1<-sapply(fz1,Im)
#fy2,fy3,fy4
fy5<-sapply(fz5,Im)
df2<-data.frame(fx1=fx1,fy1=fy1,
#curve2, curve 3, curve 4
fx5=fx5,fy5=fy5)
RedOrgVector<-c('#fd8d3c','#fc4e2a','#e31a1c','#bd0026','#800026')
p <- ggplot(data = df2)
p+xlim(c(-10,10))+ylim(c(-10,10))+
geom_path(x=fx1,y=fy1,size=.75,color=RedOrgVector[1],linetype=1)+
#curve2, curve3, curve4
geom_path(x=fx5,y=fy5,size=.75,color=RedOrgVector[5],linetype=1)
toComplex
是向量化的,不需要使用mapply
。 - baptistesapply
行,情况也是如此。 - baptiste