[R] how to plot two surfaces with lattice::wireframe

Carl Witthoft carl at witthoft.com
Sat Oct 15 18:15:30 CEST 2011


Thank you!  That bit about "Re(z) + Im(z)" was what I missed.

Carl


On 10/15/11 12:00 PM, Deepayan Sarkar wrote:
> On Fri, Oct 14, 2011 at 3:07 AM, Carl Witthoft<carl at witthoft.com>  wrote:
>> Hi all,
>> I'd like to plot the Real and Imaginary parts of some f(z) as two different
>> surfaces in wireframe (the row/column axes are the real and imag axes).  I
>> know I can do it by, roughly speaking, something like
>>
>> plotz<- expand.grid(x={range of Re(z)}, y={range of Im(z), groups=1:2)
>> plotz$func<-c(Re(f(z),Im(f(z))
>> wireframe(func~x*y,data=plotz,groups=groups)
>>
>> But that seems like a clunky way to go, especially if I happen to have
>> started out with a nice matrix of the f(z) values.
>>
>> So, is there some simpler way to write the formula in wireframe?  I
>
> This is reasonably simple:
>
> fz<- matrix(complex(real = 1:100, imaginary = 101:200), 10, 10)
>
> zr<- as.vector(row(fz))
> zc<- as.vector(row(fz))
> wireframe(Re(fz) + Im(fz) ~ zr + zc)
>
> The as.vector() are needed because matrix x and y in the formula have
> a special meaning.
>
> -Deepayan
>

-- 

Sent from my Cray XK6
"Pendeo-navem mei anguillae plena est."



More information about the R-help mailing list