R plot:如何正确调整挑剔的边距?

R plot: how can I adjust finicky margins properly?

我的 R 线图中的边距有问题...我知道网站上有很多与此相关的问题,但 none 似乎一语中的,所以我我想我会专门问一下,包括详细信息...如果过分,我也很抱歉 descriptive/wordy!

我正在用多条线 (4) 和自定义刻度线(character/descriptive 信息)在时间点而不是 0:3 绘制 R 线图。除了边距,一切都很棒。

因此,首先将刻度标签从屏幕上切掉。但是,轴对齐、图例显示和所有数据点显示等。在其他方面看起来都是正确的。 这里我设置了mar = c(5, 4.1, 4.1, 4.0)

我尝试更改以便使用以下方式显示标签: mar = c(5, 4.1, 4.1, 4.0) + x),对 x 使用多个值(0.5、1.0、2.5 等)。 这会改变坐标轴,使它们不对齐,图形被截断等,标签再次离开屏幕。

接下来我尝试使用以下方法更改 dev.new(...) 选项: dev.new(width=4, height=3, unit="in") 以及 wh 的其他值。仍然没有解决方案...对齐全部关闭,x 轴缺失,轴标签和刻度标签关闭等。

非常感谢任何帮助。我知道对于这样的例子来说,它可能是一个挑剔的情节,但在这个例子中我更喜欢 R plot 而不是 ggplot。

提前谢谢你...

这是可比较的 R 代码:

bird <- c ("2", "4", "3.5", "8")
dog <- c ("8", "6", "10", "4")
fish <- c("10", "8", "5", "1")
cat <- c("12", "6", "3", "1") 

time = c("0", "1", "2", "3")  

  dev.new() 
  plot(time, bird, type="o", col="darkblue", xlab="time points", ylab="average scores of pets", main = "average pet scores over time", ylim=c(0, 15), cex.main=1.2, axes=FALSE) 
  par(las=2, mar = c(5, 4.1, 4.1, 4.0)) 
  axis(1, at=0:3, labels= c("pre-lim", "first appointment", "3 month check-up", "12 month check-up")) 
  axis(2) 
  lines(time, dog, type="o", col="forestgreen") 
  lines(time, fish, type="o", col="cornflowerblue") 
  lines(time, cat, type="o", col="darkturquoise") 
  legend (2.25, 14.3, legend = c("bird", "dog", "fish", "cat"), fill= c("darkblue", "forestgreen", "cornflowerblue", "darkturquoise"))

我认为 dev.new()par(mar = c(10, 5, 1, 1)) 的组合产生了不错的情节。

dev.new()
par(las = 2, mar = c(10, 5, 1, 1))