Yup, interesting.
I would add, though, that in the simple example I gave above, I did not
have to use, pd 'show', it seemed to do so automatically.
Implementation change?


On 25 April 2014 07:12, Raul Miller <[email protected]> wrote:

> I think it is.
>
> But the data needs to be changed slightly.
>
> (I have been mostly ignoring plot and pd myself, and I just now went
> through the plot lab.)
>
> An important thing to understand seems to be that
>
>     H=:|:|.V=:j./~i:2j8
>
>    'pensize 2;color 50 255 255' plot H,V
>
> is at least roughly equivalent to:
>
>    pd 'reset'
>    pd 'pensize 2;color 50 255 255'
>    pd H,V
>    pd show
>
> In other words, you can just call pd twice, once with the left argument for
> plot and once with the right argument. But since pd is breaks things out
> into steps, you also need to start with a pd 'reset' and then do a pd
> 'show' at the end.
>
> Basically, pd can tell whether you have given character data (options) or
> numeric data (which needs to be plotted). In fact, hypothetically speaking,
> plot could maybe be rewritten as:
>
> plot=:3 :0
>   '' plot y
> :
>   pd 'reset'
>   pd x
>   pd y
>   pd 'show'
> )
>
> That's not how it works though (and I wonder what issues the current
> implementation of plot addresses which I am currently unaware of - but
> that's not important right now).
>
> Anyways, once you have the grid plotted, you can add another plot to the
> display by doing another sequence of pd instructions for the parabola, but
> without the 'reset'.
>
>    P=: 2<.*:i:2j32
>
>    pd 'pensize 2;color BLUE'
>    pd P
>    pd 'show'
>
> Note that since we did not do a 'reset' here, we get to keep what we have
> already displayed.
>
> The problem is that the implied X axis for the parabola (0 to 32) is not
> the same size as the grid (_2 to 2). So it looks "wrong".
>
> To fix this, we need to explicitly specify the values for the X axis of the
> parabola:
>
>    pd 'reset'
>    pd 'pensize 2;color 50 255 255'
>    pd H,V
>    pd 'pensize 2;color BLUE'
>    pd (i:2j32);P
>    pd 'show'
>
> Finally, note that, if you prefer,
>
>    require 'numeric'
>    steps _2 2 32
>
> could have been used instead of i:2j32.
>
> (I am avoiding the use of the definition of 'do' for generating the X
> values, because J already supplies a definition for 'do' which does
> something different.)
>
> Thanks,
>
> --
> Raul
>
>
>
>
> On Fri, Apr 25, 2014 at 1:43 AM, Alex Giannakopoulos <
> [email protected]> wrote:
>
> > Otherwise (having just looked in the Labs) I think the "pd" verb may
> allow
> > you to plot different size data on the same plot.  I haven't used it yet,
> > I'll check it out now, but it may be what you need.
> >
> >
> > On 25 April 2014 06:36, Alex Giannakopoulos <[email protected]>
> > wrote:
> >
> > > ... contd
> > >
> > > Using (]+0j1*P) or similar
> > >
> > > Also I think the intervals must be the same on one plot.  If you try to
> > > mix an 8-interval with a 32-interval matrix, the 8-matrix will get
> padded
> > > with 0s or 0j0s, rendering a nice spider's web in the latter case.  You
> > > will need to pad the 8-matrix with the values of the terminal points to
> > > avoid this.
> > >
> > >
> > > On 25 April 2014 06:15, alexgian <[email protected]> wrote:
> > >
> > >> Further, you seem to have specified your grid in the Argand plane, I
> > >> don't think you can mix and match with reals just like that (I may be
> > wrong
> > >> - certainly no expert on J plotting).
> > >> So you'd have to translate your parabola to complex coords if you
> wanted
> > >> to display it in the same context, I think.
> > >>
> > >>
> > >> On 25 April 2014 06:00, alexgian <[email protected]> wrote:
> > >>
> > >>> Not quite sure what you're trying to do, but would this be a step in
> > the
> > >>> right direction?
> > >>>
> > >>>
> > >>>    load 'plot'
> > >>>
> > >>>    do=: 13 :'({.y) +(i.>:{:y)*(--/ 2{.y)%{:y'
> > >>>
> > >>>    G=:do _2 2 32
> > >>>
> > >>>    P=: 2 <. *:
> > >>>
> > >>>    plot (];P) G
> > >>>
> > >>>
> > >>> In your version you have not specified x-coordinates, so it picks
> 0-32.
> > >>>
> > >>> By using ] you specify the x-range
> > >>>
> > >>>
> > >>> Also note that that you do not need "do", there is a plot builtin
> > called
> > >>> "steps":
> > >>>
> > >>>    plot (];P) steps _2 2 32
> > >>>
> > >>> would achieve the same result
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>> On 25 April 2014 01:25, Linda Alvord <[email protected]>
> wrote:
> > >>>
> > >>>> Can anyone help me put the parabola, P, on the graph paper without
> > >>>> changing
> > >>>> the scales of the graph paper.
> > >>>>
> > >>>>    load 'plot'
> > >>>>    do=: 13 :'({.y) +(i.>:{:y)*(--/ 2{.y)%{:y'
> > >>>>    A=:do _2 2 8
> > >>>>    V=:j./~ A
> > >>>>    H=:|:|. V
> > >>>>    'pensize 2;color 50 255 255' plot H,V
> > >>>>
> > >>>>    f=:*:
> > >>>>    'pensize 2;color BLUE' plot P=: 2 <. f do _2 2 32
> > >>>>
> > >>>> Linda
> > >>>>
> ----------------------------------------------------------------------
> > >>>> For information about J forums see
> > http://www.jsoftware.com/forums.htm
> > >>>>
> > >>>
> > >>>
> > >>
> > >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to