Hi Simon,

I'll write in line below -

On 10/17/12 11:34 AM, Simon Urbanek wrote:
Ray,

On Oct 17, 2012, at 2:17 PM, Ray Spence wrote:

Hi Simon,

Thank you very much for your response. I've installed the inline library
and run the function as you wrote. The results are interesting. Following
this procedure on a 24" iMac running OS X 10.7.4 I get this:

f()
518.809mm x 320.842mm
[1] 1.617021
which is pretty close to what you predicted. However, doing the same on another
24" iMac running OS X 10.7.5 I get this:

f()
0mm x 0mm
[1] NaN
which clearly shows a problem. I know that we can set the quartz dpi variable
by hand per session or in users' .Rprofile file which will compensate for this
problem. But I'd like to find a better solution that doesn't require editing any
user file. I suppose this a bug but am not sure if it would belong to R or
to Apple?

Apple - their CGDisplayScreenSize() is returning bogus result. Just to make 
sure, please try this in a standalone program w/o R:

disp.c:

#include <stdio.h>
#include <ApplicationServices/ApplicationServices.h>

int main() {
     CGSize ds = CGDisplayScreenSize(CGMainDisplayID());
     printf("%gmm x %gmm\n", ds.width, ds.height);
     return 0;
}


compile and run via

gcc -o disp disp.c -framework AppKit && ./disp

I've done this. Here is the output

host:~# ./disp
262.194mm x 324.255mm
host:~#

Which doesn't look correct (?).

That said, we can work around that bug in R by not using the screen size when 
it's bogus but falling back to something around 90-100 dpi. In fact, I'm 
surprised that it doesn't bomb entirely ...

Ok - now a formal question - are you saying that you/R Team can provide a patch
of sorts?

Thanks again Simon,
Ray


Thanks,
Simon


Thanks again
Ray

On 10/15/12 6:32 PM, Simon Urbanek wrote:
Ray,

On Oct 15, 2012, at 8:57 PM, Ray Spence wrote:

All,

There seems to be something wrong between OS X 10.7.5 and how
quartz reads Apple graphics resolution on 24" iMac (early 2008,
iMac8,1) on R 2.15.1 GUI1.52. On this hardware/OS/R version the
default R plot is a rectangle.
Can you attach a screenshot? R is simply reading the geometry reported by the 
OS to adjust the aspect ratio accordingly.

Can you run this in R:

install.packages("inline") # if you don't have inline installed yet
library(inline)
f=cfunction(,'CGDirectDisplayID md = CGMainDisplayID(); CGSize ds = CGDisplayScreenSize(md); 
Rprintf("%gmm x %gmm\\n", ds.width, ds.height); return ScalarReal(ds.width / 
ds.height);','#include <ApplicationServices/ApplicationServices.h>')
f()

You should see this on a 24" iMac8,1:

f()
520mm x 320mm
[1] 1.625

Those are the proper dimensions of the built-in screen.

If that's not what you get, you should be able work around this by setting dpi 
manually to 94 (it will be slightly off since the native dpi is asymmetric 
93.785 x 95.25 but 94 should be close enough to not notice) - either in 
quartz.options() or quartz().

Cheers,
Simon



On same hardware/R version running
OS X 10.7.4 the default R plot is square as expected. (I don't see
this behavior on 20" iMac once upgraded to 10.7.5.)

On this problematic iMac, if I run quartz.options() without changing
anything I see:

quartz.options()
$title

[1] "Quartz %d"

$width

[1] 7

$height

[1] 7

$pointsize

[1] 12

$family

[1] "Helvetica"

$fontsmooth

[1] TRUE

$antialias

[1] TRUE

$type

[1] "native"

$bg

[1] "transparent"

$canvas

[1] "white"

$dpi

[1] NA

But any plot, eg.
plot (rnorm(10),rnorm(10))
returns an image that is most definitely not a square.

Can anyone help me investigate this? For instance where/how
does R create the plot graphic? Are there specific OS X file(s) that R
reads to generate the plots?

My assumption is that this is an Apple Inc. generated problem
but figured that the R community might be a bit more responsive..

Thanks,
Ray

--
*******************
Raymond Spence
U.C. Berkeley
Dept. of Statistics
SCF Sysadmin
497 Evans Hall
U.C. Berkeley
510.642.5497

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac



--
*******************
Raymond Spence
U.C. Berkeley
Dept. of Statistics
SCF Sysadmin
497 Evans Hall
U.C. Berkeley
510.642.5497
*******************




--
*******************
Raymond Spence
U.C. Berkeley
Dept. of Statistics
SCF Sysadmin
497 Evans Hall
U.C. Berkeley
510.642.5497

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to