title: Set different positions of axis labels and tick marks in a barplot
body: <p>I would like to realign/offset the x-axis and associated tick marks of a barplot. This should be simple but I am having trouble finding an answer. Below is some example data with 24 categories. </p>
  
  <pre><code>xval = c(1:24)
  count = c(0.03,0.03,0.08,0.06,0.11,0.4,0.3,0.5,0.5,0.6,0.4,0.1,0.1,0.4,0.2,0.1,0.06,0.05,0.03,0.02,0.01,0.03,0.01,0.02)
  df = as.data.frame(cbind(xval, count))
  </code></pre>
  
  <p>I can easily produce a barplot with tick marks aligned at the bar midpoints using the below code:</p>
  
  <pre><code>mp &lt;- barplot(df$count, space=0, axes=FALSE) 
  axis(side=2, pos=-0.2)
  axis(side=1, at =mp, labels=df$xval)
  </code></pre>
  
  <p>I can also shift the entire x-axis (labels and ticks) to align with the outside of bars using the below (although this now fails to incorporate the last bar into the axis):</p>
  
  <pre><code>axis(side=1, at =mp-0.5, labels=df$xval)
  </code></pre>
  
  <p>While I would like the x-axis and associated tick marks to be aligned with the bar boundaries (i.e. a tick mark on either side of the bar instead of in the centre), I want the x-axis labels to remain at the bar midpoints. Is there an easy way to achieve this?</p>