[R] axTicks and window resizing

Patrick Giraudoux patrick.giraudoux at univ-fcomte.fr
Thu Aug 18 19:26:46 CEST 2005


OK. Things work now and the window can be resized easy after adding at = 
axTicks() in axis() explicitely. This makes:

profplot<-function(x,y,z=10,...){
op <- par()$mai
par(mai=c(0.95625,0.76875,0.76875,0.95625))
plot(x,y*z, type="l",asp=1,las=1,xlab="",ylab="",yaxt="n",...)
axis(2,at=axTicks(2),labels=axTicks(2)/z,las=1)
axis(4,at=axTicks(2),labels=axTicks(2)/z,las=1)
par(mai=op)
}

Thanks for the hint,

Patrick

Prof Brian Ripley a écrit :

> On Thu, 18 Aug 2005, Patrick Giraudoux wrote:
>
>> Dear listers,
>>
>> I have written a function to facilitate the drawing of altitude profiles
>> with x (distance), y (altitude) and a z  parameter (altitude 
>> magnification).
>>
>> profplot<-function(x,y,z=10,...){
>> op <- par()$mai
>> par(mai=c(0.95625,0.76875,0.76875,0.95625))
>> plot(x,y*z, type="l",asp=1,las=1,xlab="",ylab="",yaxt="n",...)
>> axis(2,labels=axTicks(2)/z,las=1)
>> axis(4,labels=axTicks(2)/z,las=1)
>> on.exit(par(mai=op))
>> }
>>
>> This worked apparently well until I had to resize the graphical window
>> after plotting. In this case, I get this message:
>>
>> >  profplot(prof$dist,prof$alt,col="blue")
>> > Erreur : les longueurs de 'at' et de 'label' diffèrent, 7 != 8
>>
>> Which means Error: length of 'at' and "label' differ, 7!=8 (whish R
>> 2.1.1 could be parametrise 'English' even with a French Windows XP!!!!)
>
>
> If I understand you correctly, it can.  Just add LANGUAGE=en to the 
> shortcut.
>
>> At this stage, R crashes (= I cannot get the graphic window
>> working/resized and must interrupt the process from Windows XP, then
>> restart R for good work with the graphical window).
>>
>> The error occur with the difference between the tick number computed
>> from plot() and the one computed with axTicks(). If still equal (slight
>> resizing) everything goes smoothly.
>
>
> The problem is that you need to specify 'at' and 'labels' to axis(): 
> you cannot safely specify just labels.  When re-drawing, 'at' is 
> recomputed, but your specification of 'labels' is not.
>
> I suspect you can just do dev.off() and open a new graphics window.
>
>> Thanks for any comments, even rude... (I am not sure the
>> problem/programme has been tackled relevantly enough)
>>
>> Patrick
>>
>> ______________________________________________
>> R-help at stat.math.ethz.ch mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide! 
>> http://www.R-project.org/posting-guide.html
>>
>




More information about the R-help mailing list