[R] Problems creating a PNG file for a dendrogram: "Error in plot.window(...) : need finite 'xlim' values"

Richard Vlasimsky richard.vlasimsky at imidex.com
Wed Jan 12 13:17:34 CET 2011


 That was a simple solution.  Turns out you were correct, "plot(p)" was the problem.  Simply removing it and everything worked perfectly.  

Thanks Bill, Peter and David for your help. 

On Jan 11, 2011, at 8:29 PM, David Winsemius wrote:


On Jan 11, 2011, at 9:27 PM, David Winsemius wrote:

> 
> On Jan 11, 2011, at 7:01 PM, Richard Vlasimsky wrote:
> 
>> 
>> Has anyone successfully created a PNG file for a dendrogram?
>> 
>> I am able to successfully launch and view a dendrogram in Quartz.  However, the dendrogram is quite large (too large to read on a computer screen), so I am trying to save it to a file (1000x4000 pixels) for viewing in other apps.  However, whenever I try to initiate a PNG device, I get a "need finitite 'xlim' values" error.
>> 
>> 
>> 
>> Here is some example code to illustrate my point:
>> 
>> cor.matrix <- cor(mydata,method="pearson",use="pairwise.complete.obs");
>> distance <- as.dist(1.0-cor.matrix);
>> hc <- hclust(distance);
>> p <- plot(hc);
>> plot(p);
>> #This works!  Plot is generated in quartz no problem.
>> 
>> 
>> #Now, try this:
>> png(filename="delme.png",width=4000,height=1000);
>> cor.matrix <- cor(mydata,method="pearson",use="pairwise.complete.obs");
>> distance <- as.dist(1.0-cor.matrix);
>> hc <- hclust(distance);
>> p <- plot(hc);
>> plot(p);
>> #Error in plot.window(...) : need finite 'xlim' values
>> #In addition: Warning messages:
>> #1: In min(x) : no non-missing arguments to min; returning Inf
>> #2: In max(x) : no non-missing arguments to max; returning -Inf
>> #3: In min(x) : no non-missing arguments to min; returning Inf
>> #4: In max(x) : no non-missing arguments to max; returning -Inf
> 
> I'm not sure the other two answers address the problems I found. When I try to set up a png file with the parameters width=4000,height=1000, on a Mac I intially got no plot with what is an otherwise valid command. But after successfully getting plotting to a png device the logjam appear broken. Try:
> 
> graphics.off()
> dev.list()
> #NULL
> png(filename="delme.png",width=4000,height=1000);
> plot(hc)
> dev.off()
> 
> 
> (Of course I used dev.off() which you did not, but even adding dev.off() was not enough to get success, at least initially. I don't understand the suggestion to get rid of plot(hc) or the suggestion that hclust() returns NULL. That's certainly not how I read the help page and examples for hclust.)

I guess it's true to say that I misunderstood when Venables and Langfelder _didn't_ say either of those things.  They said that plot(plot(hc)) was not needed and I have now seen the light. The missing ingredient in the OP's frustrations is still dev.off().

>> 
>> This is the exact same code, only a prior call to png() causes the seemingly unrelated xlim to fail.  Why is this?
>> 
>> Thanks,
>> Richard Vlasimsky
> 
> 
> David Winsemius, MD
> West Hartford, CT

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list