绘图中的多行y轴标签

4
有没有办法在 R 绘图中创建多行 y 轴标签?
我尝试在应该换行的地方添加 \n,但第一行标签会被截断。
l <- 10
plot(0:l, (0:l), type='l',
     yaxt='n',
     xlab='Index',
     ylab='Cumulative sum\nof the sorted weights')

图表结果

这个问题在使用tikzDevice和在RStudio中都会发生。我也尝试了一些par()选项,但没有成功。该如何正确地解决它?

(过大的上边距也让我感到烦恼...)

3个回答

10

您需要使用 marmgp 设置页边距:

l <- 10
op <- par(mar=c(5, 6, 4, 2) + 0.1)
plot(0:l, (0:l), type='l',
     yaxt='n',
     xlab='Index',
     ylab='Cumulative sum\nof the sorted weights')
par(op)

输入图片说明


我尝试在调用plot时同时使用marmgp,是否为时已晚? - krlmlr
你能详细说明一下吗?你所说的“太晚”是什么意思? - smillig
我正在寻找使用“plot”调用时未能识别边距参数的原因。我没有像你的代码中那样尝试“par”。 - krlmlr
据我所知,在plot命令中不可能更改边距宽度。 - smillig
这总是意味着人们要证明我错了,我相信这一定会发生! - smillig

2

就像@smillig建议的那样,您可以使用par来更改marmgp参数。

但是在调用plot之前,您必须先调用par


1
使用mtext()是一种可以完全控制坐标轴标题的替代方法。
l <- 10
plot(0:l, (0:l),
  type = "l",
  yaxt = "n",
  xlab = "Index",
  ylab = ""
)
mtext(side = 2, line = 3, "Cumulative sum")
mtext(side = 2, line = 2, "of the sorted weights")

2023-10-06创建,使用reprex v2.0.2生成


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接