1

如果您正在制作一个绘图,并且您使用 text() 制作 x 轴标签,那么您可以指定一个字符串旋转或srt参数和一个数字来旋转轴标签。例如,srt=45将文本旋转 45 度。

假设我正好有 31 列。如果我希望第一个是水平的,然后它们逐渐变得更倾斜,最后一个是垂直的,可以想象这样写:

slant=seq(0, -90, -3)
plot(some stuff)
text(x=mid, y=y.min-20, labels=chrs, xpd=TRUE, srt=slant, adj = 1, cex=1)

其中 mid、chrs 和 slant 的长度相同。

有什么方法可以实现吗?

4

3 回答 3

5
plot.new()
Map(text, letters[1:5], x=seq(0,1,length=5), y=0.5, srt=seq(0,90, length=5))
于 2014-09-17T23:13:10.080 回答
1

我在这上面花了更多时间。我设计了一个不同的解决方案:

    for(i in 1:31){
    text(x=mid[i], y=y.min-(17+i), labels=chrs[i], xpd=TRUE, srt=labelrotationparam[i], adj = 1, cex=1)
    }

请注意,我还使用 i 增加了 y 值,这使标签均匀地位于轴下方。

于 2014-09-17T23:15:55.773 回答
0

如果我正确理解了这个问题,您可以通过一个简单的for循环来实现这一点:

slant=seq(0, -90, -3)
plot(1:31,1:31, type="n")

for(i in 1:length(slant)) {
  text(x=1+i, y=1, xpd=TRUE, srt=slant[i], labels=letters[i], adj = 1, cex=1)
}  
于 2014-09-17T23:15:35.983 回答