[R] how to control ticks in plots with yasp or xasp
Hi, A few times I tried to control the number and position of tick marks in plots with the yasp or xasp parameters. For example, a y axis was drawn by default with tick marks at 0, 20, 40, 80 and 100. I tried to get tick marks every 10 by adding yasp=(0, 100, 10) but this had no effect at all. I know I can draw the axis and tick marks manually, but often this simple option would suffice if I could understand how to make it work. Thanks in advance, Denis Chabot __ R-help@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
Re: [R] how to control ticks in plots with yasp or xasp
On Sat, 2005-10-08 at 09:28 -0400, Denis Chabot wrote: Hi, A few times I tried to control the number and position of tick marks in plots with the yasp or xasp parameters. For example, a y axis was drawn by default with tick marks at 0, 20, 40, 80 and 100. I tried to get tick marks every 10 by adding yasp=(0, 100, 10) but this had no effect at all. I know I can draw the axis and tick marks manually, but often this simple option would suffice if I could understand how to make it work. Thanks in advance, Denis Chabot I suspect that one problem you are having is that there is no par(xasp) or par(yasp)unless these are typos and you are trying to use par(xaxp) and par(yaxp)? There is an 'asp' argument to some of the plot functions (ie. plot.default), but this has a different intention. par(xaxp) and par(yaxp) are not listed as read only pars in ?par, however, I cannot recall an instance where R does not overwrite the user settings during the calculation of the axes, whether passed as arguments to a plot function or set a priori via a par() call. If you want explicit control over the tick marks, you will need to use axis(), perhaps in combination with axTicks(), after using 'xaxt = n' and/or 'yaxt = n' in the plot call, depending upon the circumstances. HTH, Marc Schwartz __ R-help@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
Re: [R] how to control ticks in plots with yasp or xasp
On Sat, 8 Oct 2005, Marc Schwartz wrote: On Sat, 2005-10-08 at 09:28 -0400, Denis Chabot wrote: Hi, A few times I tried to control the number and position of tick marks in plots with the yasp or xasp parameters. For example, a y axis was drawn by default with tick marks at 0, 20, 40, 80 and 100. I tried to get tick marks every 10 by adding yasp=(0, 100, 10) but this had no effect at all. I know I can draw the axis and tick marks manually, but often this simple option would suffice if I could understand how to make it work. Thanks in advance, Denis Chabot I suspect that one problem you are having is that there is no par(xasp) or par(yasp)unless these are typos and you are trying to use par(xaxp) and par(yaxp)? In any case, (0, 100, 10) is invalid syntax, and c(0, 100, 10) is needed. There is an 'asp' argument to some of the plot functions (ie. plot.default), but this has a different intention. par(xaxp) and par(yaxp) are not listed as read only pars in ?par, however, I cannot recall an instance where R does not overwrite the user settings during the calculation of the axes, whether passed as arguments to a plot function or set a priori via a par() call. Really? Try plot(1:100, xaxt=n) par(xaxp=c(0, 50, 5)) # the value is reset at each plot axis(1) for how it works (but not inline, which is probably a bug). If you want explicit control over the tick marks, you will need to use axis(), perhaps in combination with axTicks(), after using 'xaxt = n' and/or 'yaxt = n' in the plot call, depending upon the circumstances. That is usually as easy. -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UKFax: +44 1865 272595 __ R-help@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
Re: [R] how to control ticks in plots with yasp or xasp
Denis Chabot [EMAIL PROTECTED] writes: Oops, Mark, bad typo indeed. But yaxp is what I had in my R program and it did not help. I did obtain control over my tick marks by drawing them myself, as you suggest. But I was curious as to how to use yaxp since the help on par gives it as a possible way of controlling ticks. Maybe it should be removed from the help file? plot(1) par(xaxp) par(xaxp=c(.6,1.4,8)) axis(3) So it does do something... Thanks for your help, Denis Le 05-10-08 à 11:16, Marc Schwartz a écrit : On Sat, 2005-10-08 at 09:28 -0400, Denis Chabot wrote: Hi, A few times I tried to control the number and position of tick marks in plots with the yasp or xasp parameters. For example, a y axis was drawn by default with tick marks at 0, 20, 40, 80 and 100. I tried to get tick marks every 10 by adding yasp=(0, 100, 10) but this had no effect at all. I know I can draw the axis and tick marks manually, but often this simple option would suffice if I could understand how to make it work. Thanks in advance, Denis Chabot I suspect that one problem you are having is that there is no par(xasp) or par(yasp)unless these are typos and you are trying to use par(xaxp) and par(yaxp)? There is an 'asp' argument to some of the plot functions (ie. plot.default), but this has a different intention. par(xaxp) and par(yaxp) are not listed as read only pars in ?par, however, I cannot recall an instance where R does not overwrite the user settings during the calculation of the axes, whether passed as arguments to a plot function or set a priori via a par() call. If you want explicit control over the tick marks, you will need to use axis(), perhaps in combination with axTicks(), after using 'xaxt = n' and/or 'yaxt = n' in the plot call, depending upon the circumstances. HTH, Marc Schwartz __ R-help@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 -- O__ Peter Dalgaard Øster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 __ R-help@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
Re: [R] how to control ticks in plots with yasp or xasp
On Sat, 2005-10-08 at 16:37 +0100, Prof Brian Ripley wrote: On Sat, 8 Oct 2005, Marc Schwartz wrote: On Sat, 2005-10-08 at 09:28 -0400, Denis Chabot wrote: Hi, A few times I tried to control the number and position of tick marks in plots with the yasp or xasp parameters. For example, a y axis was drawn by default with tick marks at 0, 20, 40, 80 and 100. I tried to get tick marks every 10 by adding yasp=(0, 100, 10) but this had no effect at all. I know I can draw the axis and tick marks manually, but often this simple option would suffice if I could understand how to make it work. Thanks in advance, Denis Chabot I suspect that one problem you are having is that there is no par(xasp) or par(yasp)unless these are typos and you are trying to use par(xaxp) and par(yaxp)? In any case, (0, 100, 10) is invalid syntax, and c(0, 100, 10) is needed. Indeed. There is an 'asp' argument to some of the plot functions (ie. plot.default), but this has a different intention. par(xaxp) and par(yaxp) are not listed as read only pars in ?par, however, I cannot recall an instance where R does not overwrite the user settings during the calculation of the axes, whether passed as arguments to a plot function or set a priori via a par() call. Really? Try plot(1:100, xaxt=n) par(xaxp=c(0, 50, 5)) # the value is reset at each plot axis(1) for how it works (but not inline, which is probably a bug). AhI had not thought about that 'par'ticular combination... ;-) Hence, not R.O. So it must be used _after_ a plot call, which makes sense. I had reached for my copy of Paul's book and on page 96 (last paragraph in section 3.4.5 on Axes), he suggests using the approach I elucidate below with axTicks(). I thought he might have some other ideas and that I was missing something. This is also referenced on page 70, third paragraph in section 3.2.5 on Axes. If you want explicit control over the tick marks, you will need to use axis(), perhaps in combination with axTicks(), after using 'xaxt = n' and/or 'yaxt = n' in the plot call, depending upon the circumstances. That is usually as easy. Agreed. Thanks, Marc __ R-help@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
Re: [R] how to control ticks in plots with yasp or xasp
Hi, sorry about the bad syntax, though the right syntax would not have worked either, according to your tests (Mark, Brian, Peter). Anyway it is too finicky, I will draw them myself. For instance, plot(1:100, xaxt=n) par(xaxp=c(0, 100, 10)) # the value is reset at each plot axis(1) Placed tick marks at intervals at 0, 10, ..., 100, as expected, but did not place a label under 100... Thanks for the answers, usufull as always, Denis Le 05-10-08 à 11:58, Marc Schwartz a écrit : On Sat, 2005-10-08 at 16:37 +0100, Prof Brian Ripley wrote: On Sat, 8 Oct 2005, Marc Schwartz wrote: On Sat, 2005-10-08 at 09:28 -0400, Denis Chabot wrote: Hi, A few times I tried to control the number and position of tick marks in plots with the yasp or xasp parameters. For example, a y axis was drawn by default with tick marks at 0, 20, 40, 80 and 100. I tried to get tick marks every 10 by adding yasp=(0, 100, 10) but this had no effect at all. I know I can draw the axis and tick marks manually, but often this simple option would suffice if I could understand how to make it work. Thanks in advance, Denis Chabot I suspect that one problem you are having is that there is no par(xasp) or par(yasp)unless these are typos and you are trying to use par(xaxp) and par(yaxp)? In any case, (0, 100, 10) is invalid syntax, and c(0, 100, 10) is needed. Indeed. There is an 'asp' argument to some of the plot functions (ie. plot.default), but this has a different intention. par(xaxp) and par(yaxp) are not listed as read only pars in ? par, however, I cannot recall an instance where R does not overwrite the user settings during the calculation of the axes, whether passed as arguments to a plot function or set a priori via a par() call. Really? Try plot(1:100, xaxt=n) par(xaxp=c(0, 50, 5)) # the value is reset at each plot axis(1) for how it works (but not inline, which is probably a bug). AhI had not thought about that 'par'ticular combination... ;-) Hence, not R.O. So it must be used _after_ a plot call, which makes sense. I had reached for my copy of Paul's book and on page 96 (last paragraph in section 3.4.5 on Axes), he suggests using the approach I elucidate below with axTicks(). I thought he might have some other ideas and that I was missing something. This is also referenced on page 70, third paragraph in section 3.2.5 on Axes. If you want explicit control over the tick marks, you will need to use axis(), perhaps in combination with axTicks(), after using 'xaxt = n' and/or 'yaxt = n' in the plot call, depending upon the circumstances. That is usually as easy. Agreed. Thanks, Marc __ R-help@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
Re: [R] how to control ticks in plots with yasp or xasp
On Sat, 8 Oct 2005, Denis Chabot wrote: Hi, sorry about the bad syntax, though the right syntax would not have worked either, according to your tests (Mark, Brian, Peter). It DOES work according to my tests! (Do give us the credit for testing our advice: we would appreciate your showing equal care.) Anyway it is too finicky, I will draw them myself. For instance, plot(1:100, xaxt=n) par(xaxp=c(0, 100, 10)) # the value is reset at each plot axis(1) Placed tick marks at intervals at 0, 10, ..., 100, as expected, but did not place a label under 100... Does for me (2.2.0, Windows and X11 on Linux). Might the text be clipped on your unnamed device, so you need to set xpd? (If so, it will be clipped however you try to do this, and is an unrelated local problem.) -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UKFax: +44 1865 272595 __ R-help@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
Re: [R] how to control ticks in plots with yasp or xasp
Hi Brian, Le 05-10-08 à 13:21, Prof Brian Ripley a écrit : On Sat, 8 Oct 2005, Denis Chabot wrote: Hi, sorry about the bad syntax, though the right syntax would not have worked either, according to your tests (Mark, Brian, Peter). It DOES work according to my tests! (Do give us the credit for testing our advice: we would appreciate your showing equal care.) I am very sorry, I did not express myself properly. I do appreciate your help, and I did take the time to test your solution. What I meant was that even if I had use the proper syntax, i.e. yaxp=c (10,100,10) instead of y=(10,100,10) [actually in my program I had used it but I was careless when I composed the message], it would not have worked because you demonstrated that it has to be used within a par statement, which I had not done. Therefore my attempt was doomed. I did not mean there was no way to make yaxp work, so I apologize if you think I take your advice lightly, and I cannot state strongly enough that it is not the case at all. Anyway it is too finicky, I will draw them myself. For instance, plot(1:100, xaxt=n) par(xaxp=c(0, 100, 10)) # the value is reset at each plot axis(1) Placed tick marks at intervals at 0, 10, ..., 100, as expected, but did not place a label under 100... Does for me (2.2.0, Windows and X11 on Linux). Might the text be clipped on your unnamed device, so you need to set xpd? (If so, it will be clipped however you try to do this, and is an unrelated local problem.) This is strange. I work on Mac OS X, so the default device is quartz. Label 100 is shown without clipping if plot without changing xaxp. But just in case I made more space at the right of the graph with par(mai=c(0.7, 0.7, 0.5, 0.5)) plot(1:100, xaxt=n) par(xaxp=c(0, 100, 10)) # the value is reset at each plot axis(1) and the 100 does not appear. If I run this again: plot(1:100, xaxt=n) axis(1) I'm back with R's default axis and the 100 is present. Anyone on a Mac wants to try? Denis -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UKFax: +44 1865 272595 __ R-help@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