How to set the length of ticks to be exactly 1 inch? How to set the length of ticks to be exactly 1 inch? r r

How to set the length of ticks to be exactly 1 inch?


To specify the exact settings you want it is best to output to PDF. The onscreen plot can change when it is re-sized etc. You need to set various graphical parameters to take care of the margins. There is a good outline of the plotting area in base graphics and the appropriate par names to adjust here. This code should give you exactly what you asked for:

Edit

It looks like the PDF device keeps a border of one line around the outside, no matter what. Be default line height ~ 0.2 inches. Therefore we increase our width and height by 0.5 inches and we get spacing of exactly one inch.

Here is the measurements on my computer!!enter image description here

## Set pdf size to be slightly bigger than plot to take account of one line marginpdf( "~/myplot.pdf" , width = 6.5 , height = 15.5 )## Set graphical parameters to control the size of the plot area and the margins## Set size of plot area to 6 inches wide by 15 inches tallpar( pin = c(6,15) )## Remove margins around plot areapar( mai = c(0,0,0,0) )## Remove outer margins around plot areapar( omi = c(0,0,0,0) )## Set y-axis take use entire width of plot area (6 inches) and to have 7 tick marks (-3,-2,-1,0,1,2,3)par( yaxp = c(0,1,7) )## Set x-axis take use entire height of plot area (15 inches) and to have 27 tick marks (-13,-12,...,0,...11,12,13)par( xaxp = c(0,1,27) )## Create the plotplot( x , y , type = "l" , frame.plot = FALSE , axes = FALSE )axis( 1 , pos = 0 , at = seq( -3 , 3 , by = 1 ) , labels = seq( -3 , 3 , by = 1 ) )axis( 2 , pos = 0 , at = seq( -13 , 13 , by = 1 ) , labels = seq( -13 , 13 , by = 1 ) )text(0.5,5,expression(f(x)==frac(1,2)*x^3) )## Turn PDF device offdev.off()

And the results:

enter image description here