R:添加自定义刻度标记

时间:2015-10-09 07:57:04

标签: r graphics visualization

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

enter image description here

如何添加自定义标签,而不是1,2,3,4,5的x轴刻度标记? 假设我想要将刻度线1标记为“这是一个非常长的字符串1”,刻度线2标记为“这是一个非常长的字符串2”......等等。因为这些标签很长,所以我会喜欢将它们设置成一个角度(可能是135度或类似的东西),以便它们易于阅读。我怎么能在R?中做到这一点?

1 个答案:

答案 0 :(得分:1)

  

而不是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"