Posted by
Rotella, Anthony M. (GRC)[] on
Aug 18, 2007; 2:38pm
URL: http://imagej.273.s1.nabble.com/Plot-bug-tp3698591p3698593.html
If you look at my code, the plot is of an area vs. slice number. That means that the x-values would start at 1, and go till the end of the array, increasing by 1. And it would be nice to start at 0 like normal, but then when you plot them, you would have data at the wrong slice number, since they would start at zero, not 1. I think if you look at my code a second time, this should be clear.
________________________________
From: ImageJ Interest Group on behalf of Justin McGrath
Sent: Fri 8/17/2007 9:11 PM
To:
[hidden email]
Subject: Re: Plot bug?
From the definition page at
http://rsb.info.nih.gov/ij/developer/macro/functions.html.
Plot.setLimits(xMin, xMax, yMin, yMax)
Sets the range of the x-axis and y-axis of plots created using
Plot.create(). Must be called immediately after Plot.create().
Move Plot.setLimits() after Plot.create().
Also, nothing in your code says 1-totalArea.length. Anyhow, I don't
know why you would want the maximum x value of the graph to be the
length of the array holding the x values. I would imagine that you
want it to be the maximum (or slightly larger than maximum ) value of
the values in the x array. Likewise, you want the minimum x value to
be the minimum (or sligtly less than minimum) of the values in the x
array, which may or may not be anywhere near 1, as you have coded.
Having the array index match the slice number is odd. Just use
slice_number-1 when you access values in the array.
Justin
On 8/17/07, Rotella, Anthony M. (GRC)[] <
[hidden email]> wrote:
> Hello all,
>
> I am working on plotting some data using the Plot commands, and
> I noticed something interesting. I have been plotting arrays, and been
> getting confusing results using the setLimits function. My code looks
> like this:
>
> Plot.create("Total Area vs. Slice Number","Slice", "Total Area",
> totalArea);
> Plot.setColor("orange");
> Plot.setLimits(1, totalArea.length, 0, 50000);
> Plot.show();
>
> The array has a 0 value at 0 (I wanted the data to correlate with slice
> number, so the array really starts at 1, hence the 1-totalArea.length
> for x-values.) and then at 1 it jumps up to about 17000. Now, in the
> plot, there are several problems:
>
> 1. It displays totalArea[1] somewhere around (0, 6000), optically, on
> the plot. If I hover my mouse over that point though, it says (1,
> 17250). Interesting....
>
> 2. Despite setting the y-scale to be (0, 50000), the last axis label on
> the plot only goes up to 15000, so it probably goes up to about 17500.
>
> Thanks,
>
> Tony Rotella
>