在R基础图中将轴标签上下颠倒

时间:2014-03-21 17:21:31

标签: r plot rotation

我需要一些基础R绘图中的轴标签帮助,提前感谢任何指导!

我需要什么:

R base plot()我想将axis(3, ...)标签旋转到-90度以获得以下输出:

enter image description here

(请注意,我已将图片旋转到R外)

为什么我需要它(大图):

我正在使用labcurve进行曲线注释,奇怪的是,对于我的数据,如果应用于-90度旋转图形,注释结果在视觉上会更好。运行labcurve后,我可以将生成的R生成的PDF在LaTeX中旋转90度。

我尝试过:

#1

我知道这受parlas选项的约束,并带有以下选项:

0: always parallel to the axis [default],
1: always horizontal,
2: always perpendicular to the axis,
3: always vertical.

但是,这四个选项仅覆盖0度和90度两个角度,如下所示:

plot(x=c(0,10), y=c(0,1), type='n', xlab='',ylab='', axes=FALSE)
lines(x=c(0,7,7,10), y=c(0,0.33,0.67,1))
axis(2, at=c(0,1), labels=c('',''), las=2)
xlabels <- c('0','10')
axis(3, at=c(0,10), labels=xlabels, las=0)

axis(3, at=c(0,10), labels=xlabels, las=1)

enter image description here

axis(3, at=c(0,10), labels=xlabels, las=2)

axis(3, at=c(0,10), labels=xlabels, las=3)

enter image description here

#2:

可以想到str,但根据文档:

  

请注意,通过参数srt到par的字符串/字符旋转不会   影响轴标签。

再次感谢!

1 个答案:

答案 0 :(得分:2)

R FAQ 7.27中描述了创建旋转轴标签的一般步骤。这是一个有希望满足您需求的修改示例。

# some toy data
x <- c(0, 2, 6, 10)
y <- sample(1:4)

# Increase top margin to make room for rotated labels
par(mar = c(5, 4, 7, 2) + 0.1)

# Create plot without axis or labels
plot(x, y, type = "l", axes = FALSE, xlab = "", ylab = "")

# positions for tick marks
atx <- range(x)
aty <- range(y)

# x axis without labels
axis(side = 3, at = atx, labels = FALSE)

# y axis without labels
axis(side = 2, at = aty, labels = FALSE)

# add -90 rotated x axis labels
text(x = atx, y = par("usr")[4] + 0.25, srt = -90, adj = 1,
     labels = atx, xpd = TRUE)

enter image description here