I just tried the The Dynamic Profiler. Its works as described when you move
the profile. But, when I use Process/Smooth, Sharpen, or Find Edges, the
change.
> Hi Michael,
>
> instead of
> plot.show()
> you can use
> plot.getProcessor();
> and then in the corresponding ImagePlus (which must exist already) update
> the image:
> plotImagePlus.setProcessor(null, ip);
>
> The Dynamic Profiler is an example for this:
>
http://rsbweb.nih.gov/ij/plugins/dynamic-profiler.html>
> Michael
> ________________________________________________________________
>
> On 18 Aug 2009, at 18:36, Michael Doube wrote:
>
> Hi all
>>
>> I have a plugin that iterates in a while loop until convergence occurs and
>> I'd like to monitor the values graphically. I can draw a Plot of the values
>> once the while loop has finished, but if I try to redraw the plot with
>> multiple calls to my graphResults() method I get a rather large number of
>> Plot windows.
>>
>> How can I update a plot window with new data? I'm collecting the Y data
>> in a Vector (because I can add values to it in the while loop). My plotting
>> method is as follows:
>>
>>
>> private void graphResults(Vector<Double> anisotropyHistory){
>> double[] yVariables = new double[anisotropyHistory.size()];
>> double[] xVariables = new double[anisotropyHistory.size()];
>> Enumeration<Double> e = anisotropyHistory.elements();
>> int i = 0;
>> while (e.hasMoreElements()){
>> yVariables[i] = e.nextElement();
>> xVariables[i] = (double)i;
>> i++;
>> }
>> Plot plot = new Plot("Anisotropy", "Number of repeats",
>> "Anisotropy",
>> xVariables, yVariables);
>> plot.addPoints(xVariables, yVariables, Plot.X);
>> plot.setLimits(0, anisotropyHistory.size(), 0, 1);
>> plot.show();
>> }
>>
>>
>> Michael
>>
>