R中的条形图中的下划线文本

时间:2014-06-02 05:51:10

标签: r plot

我试图在下图中强调平均值:

dummy <- c(4, 9, 6, 5, 3)
barplot(dummy)
text(4, 8,paste('Average value', mean(dummy)))

我尝试使用underline(),但它说无法找到该功能。

text(4, 8,paste('Average value', underline(mean(dummy))))

错误:

could not find function "underline"

我正在使用:R版本3.1.0

2 个答案:

答案 0 :(得分:10)

像这样:

text(4, 8, bquote("Average value"~underline(.(mean(dummy)))))

或者如果你想要整个文字加下划线:

text(4, 8, bquote(underline("Average value"~.(mean(dummy)))))

注意使用bquote.(x)在表达式中插入变量的值。

答案 1 :(得分:3)

我无法访问@EddieSanders提供的链接,但我认为此链接可能是相同的解决方案:http://tolstoy.newcastle.edu.au/R/help/02a/0471.html

underlined <- function(x, y, label, ...){ 
    text(x, y, label, ...) 
    sw <- strwidth(label) 
    sh <- strheight(label) 
    lines(x + c(-sw/2, sw/2), rep(y - 1.5*sh/2, 2)) 
  } 

dummy <- c(4, 9, 6, 5, 3)
barplot(dummy)
text(4, 8, underlined(4,8,paste('Average value', mean(dummy))), font=2)

enter image description here

修改

这将仅为平均值加下划线:

underlined <- function(x, y, label, ...){ 
    text(x, y, label, ...) 
    sw <- strwidth(label) 
    sh <- strheight(label) 
    lines(x + c(-sw/2, sw/2), rep(y - 1.5*sh/2, 2)) 
  } 

dummy <- c(4, 9, 6, 5, 3)

barplot(dummy)

text(4, 8, paste('Average value', underlined(4.9,8,mean(dummy))))