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