1

好吧,我决定浪费这个晚上在 R 中制作一个刽子手游戏。除了绘制的未知数量的字母外,一切看起来都很好,如下所示:

a
b
f
d
g

text这是使用and的示例/尝试mtext

FUN <- function(n) {
    plot.new()   
    mtext("wrong", side = 3, cex=1.5, adj = 0, padj = 1, col = "red") 
    wrong <- letters[1:n]
    text(0, .8, paste(wrong, collapse = "\n"), offset=.3, cex=1.5)
}

FUN(5)
FUN(10)

FUN2 <- function(n) {
    plot.new()   
    mtext("wrong", side = 3, cex=1.5, adj = 0, padj = 1, col = "red") 
    wrong <- letters[1:n]
    mtext(paste(wrong, collapse = "\n"), side = 3, cex=1.5,
        adj = 0, padj = 2.5)
}

FUN2(5)
FUN2(10)

我怎样才能使它a在同一位置FUN(5)和地块中?FUN(10)

4

1 回答 1

1

第一个 - 要走的路!游戏!你应该完全用它做一个包,这样我就可以玩了;)

因为text您可以使用该adj参数,如果您将其设置为 1。那么(x,y)提供的坐标text指的是包含文本的矩形的左上角。

adj:[0, 1] 中的一个或两个值,指定标签的 x(和可选的 y)调整。在大多数设备上,该间隔之外的值也将起作用。

FUN <- function(n) {
    plot.new()   
    mtext("better?", side = 3, cex=1.5, adj = 0, padj = 1, col = "red") 
    wrong <- letters[1:n]
    text(0, .8, paste(wrong, collapse = "\n"), offset=.3, cex=1.5, adj=c(0,1))
}

注意adj=c(0,1),0 是 x 对齐,1 是 y 对齐(文档并没有真正说明这一点,但由于它是一个值,[0,1]我认为它是位置调整,作为该维度中标签长度的一部分)。

同样,mtext您需要使用padj=1, 根据文档进行顶部对齐(因为您的文本方向是从左到右)。参数是adj左右对齐。

FUN2 <- function(n) {
    plot.new()   
    mtext("better?", side = 3, cex=1.5, adj = 0, padj = 1, col = "red") 
    wrong <- letters[1:n]
    mtext(paste(wrong, collapse = "\n"), side = 3, cex=1.5,
        adj = 0, padj = 1) # adj=1 means text on right side instead of left.
}

(你会做幽默的火柴人人物吗??这听起来很有趣:D)

于 2012-07-24T04:40:02.187 回答