> 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