R:添加自定义刻度标签

3
set.seed(3)
y = rnorm(10)
x = seq(1, 10, 1)
plot(y ~ x)

在此输入图片描述

如何添加自定义标签,而不是 x 轴刻度标记 1、2、3、4、5? 假设我想将刻度标记 1 标记为“这是一个非常长的字符串 1”,将刻度标记 2 标记为“这是一个非常长的字符串 2”...等等。由于这些标签很长,我希望将它们设置成一个角度(可能是 135 度或类似的角度),以便易于阅读。 我该怎么在 R 中实现呢?


请查看函数 axis,(?axis)。 - user3710546
1
可能是R: 用自己的值替换X轴的重复问题。 - user3710546
1个回答

2
而不是 x 轴的刻度标签为 1、2、3、4、5,我该如何添加自定义标签呢?假设我想把刻度标记 1 标记为“这是一个非常长的字符串1”,将刻度标记2标记为“这是一个非常长的字符串2”......等等。由于这些标签很长,我想把它们设置成一个角度(可以是 135 度或类似的角度),以便它们易于阅读。我该如何在 R 中实现这一点? 您需要两部分内容:对轴进行自定义注释和旋转它们。
# First turn off axes on your plot:
plot(1:5, 1:5, axes=FALSE)
# now tell it that annotations will be rotated by 90* (see ?par)
par(las=2)
# now draw the first axis
axis(1, at=1:5, labels=c("yo ho ho and a bottle of rum", 2:5))
# add the other default embellishments, if you like
axis(2) #default way
box()

请注意,边距上没有足够的空间来容纳长文本。因此,在某个时候,您将需要像 par(mar=c(6,1,1,1)) 这样的东西。然后,par(las=foo) 的方式只能将其旋转90度。我相信135度是可能的,但不确定具体方法。(也许使用ggplot2比基本图形更容易。)如果您想要将长标签分成2或3行,则可以在字符串中间添加\n,例如:"yo ho ho\nand a bottle of \nrum"

谢谢。有没有办法将字符串的开头放在引号旁边?因为现在“rum”紧贴着引号。如果“yo ho ho”靠近引号,那么阅读起来会更容易。换句话说,我该如何将它们旋转180度? - Adrian
我相信有这样的方法,但需要花费比我现在拥有的时间更多的时间来弄清楚。一个非常快速的方法是使用axis(3)(上轴)而不是axis(1)。 - lebatsnok
实际上你可以有自定义旋转,参见http://www.r-bloggers.com/rotated-axis-labels-in-r-plots/和http://www.hep.by/gnu/r-patched/r-faq/R-FAQ_78.html。 - lebatsnok
有趣的是,axis()函数还没有应用srt参数。我觉得这可能是人们最常去寻找它的地方。 - Badger

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