2016-05-10 14 views
4

如何在barplot的标题内使用右箭头? 我试过如下:如何在剧情的标题内使用箭头?

counts <- c(0.2, 0.4) 
barplot(counts, main="A → B", horiz=TRUE, col=2:3, xlab="Time", xlim=c(0, 1.0)) 

在R上的情节的标题看起来不错,但是当我保存打印到文件,例如pdf,标题中的右箭头被三个点'...'代替。

我在Windows 7下使用R。

谢谢!

回答

9

我们可以用expression()

set.seed(1) 
d1 <- data.frame(y = rnorm(100), x = rnorm(100)) 

plot(y ~ x, data = d1,ylab = expression(y %->% x),xlab = expression(x %->% y)) 

表达式的列表,可以发现:https://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/plotmath.html

+0

它的工作,除了以下绘图命令:barplot向前箭头可以用来生产(计数,主=表达式(Leere ABC:FMdsfdf% - >%NLKdf)) – Jonas

+1

使用'barplot(计数,主要=表达式(Leere〜ABC:〜FMdsfdf% - >%NLKdf))' – rcs

+0

这里有一些奇怪的行为(我认为),但是这个工作'main = expression(“Leere Flasche FMdsfdf:”% - >%“NLKdf” )' –

2

目前的答案是正确的,但我想我会补充上,那里有它延伸到情况的一些技巧没有plotmath %...%中缀运算符为“特殊字符”。该?plotmath页面是指我们的points页符号,字体字符,这是TestChars()功能的修改版本中定义那里有八进制(或可选十进制),选择您的系统上显示的字形的一个需要的值:

TestCharsSym <- function(sign = 1, font = 5, oct = TRUE, ...) 
{ 
    MB <- l10n_info()$MBCS 
    r <- if(font == 5) { 
    sign <- 1 
    c(32:126, 160:254) 
    } else { 
    if(MB) 32:126 else 32:255 
    } 
    if (sign == -1) r <- c(32:126, 160:255) 
    par(pty = "s") 
    plot(c(-1, 16), c(-1, 16), 
     type = "n", 
     xlab = "", 
     ylab = "", 
     xaxs = "i", 
     yaxs = "i", 
     main = sprintf("sign = %d, font = %d", sign, font) 
) 
    grid(17, 17, lty = 1) 
    mtext(paste("MBCS:", MB, " Use symbol(\"...\") ")) 
    for(i in r){ 
    try(points(i%%16, i%/%16, pch = sign*i, font = font, ...)) 
    text(i%%16 - 0.3, i%/%16 - 0.3, 
     if(oct){ 
      paste0("\\", as.octmode(i)) 
     } else{ 
      i 
     }, 
     cex = 0.5) 
    } 
} 
TestCharsSym() 

enter image description here

我的系统是OSX的可能,如果你在看的240字形我的互动情节的器件,但pdf()设备不再使用苹果标志的字体可以看出。要在带有*symbol(...)的表达式中使用此信息,您需要将十进制值“编码”为八进制数,并将其传递给具有前面带引号的反斜杠的plotmath()函数。

main=expression(A *symbol('\256')* B) 
+0

@Andrie:您的编辑工作值得赞赏,我将这些努力作为一种隐含的认可,如果您想进一步提出建议这个功能的增强,你应该感觉自由,我发现这张桌子足够有用,所以我把它张贴在我的“塔”一边 –

+0

:-)绝对的支持我喜欢这个答案,并通过代码工作,试图理解什么它的确如此,我绝对同意''plotmath'的帮助有改进的空间! – Andrie