When perpendicular axis labels are used, they can overlap. (las=2 or las=1 on the y-axis or las=3 on the x-axis)
layout(matrix(1), widths=lcm(7), heights=lcm(7))
plot(1:300, 1:300, las=2)
When the default (parallel to the axis) labels are used, overlapping labels are removed so that not every tick has a label. (e.g. same as above but remove las=2 from plot to use default las=0).
In case this is device specific - to reproduce the effect I used layout to generate a plot of fixed size that is as small as possible but doesn't give the error "Error in plot.new() : figure margins too large"
It was sometimes necessary to reset the graphics device after getting the above error.
I haven't looked at the code but it seems that the function that plots the axis labels either (1) doesn't check for overlap with perpendicular labels or (2) severely underestimates character height.
Created attachment 1678 [details]
example of plot with overlapping perpendicular axis labels
I've taken a look at this, but I don't like the results when I make the obvious change. The problem is that we don't have good information on the height of a string, so we tend to over-estimate it. This means that if I use the estimated height to detect overlap, I end up leaving out more labels than necessary, and it doesn't look good.
The only suggestion I have is that you can use cex.axis to reduce the font size and avoid overlap, or draw the axis using the axis() function, manually removing some labels.
I'm not going to make any changes or close this; it would be nice to fix it eventually.