【问题标题】:R: adding custom tick marks labelsR:添加自定义刻度线标签
【发布时间】:2016-01-07 02:05:25
【问题描述】:
set.seed(3)
y = rnorm(10)
x = seq(1, 10, 1)
plot(y ~ x)

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

【问题讨论】:

标签: r graphics visualization


【解决方案1】:

不是x轴刻度线标签1、2、3、4、5,怎么加 自定义标签?假设我希望将刻度线 1 标记为“这是一个 很长的字符串 1”,勾选标记 2 标记为“这是一个很长 string 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's,例如。 "yo ho ho\nand a bottle of \nrum".

【讨论】:

  • 谢谢。有没有办法将字符串的开头放在刻度线旁边?因为现在“朗姆酒”就在刻度线旁边。我认为如果“yo ho ho”在刻度线附近会更容易阅读。换句话说,我怎样才能将它们旋转 180 度?
  • 我确定有,但需要比我现在更多的时间才能弄清楚。一种非常快速的方法是使用轴(3)(上轴)而不是轴(1)
  • 有趣的是,srt 参数还没有应用于axis()。我觉得那将是人们最常去寻找它的地方。
猜你喜欢
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
  • 2018-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多