美好的一天!
我对R不太熟悉,所以很高兴得到一些帮助。
假设我有以下最小示例:
test <- c(10,20,40,80,80)
avg <- mean(test)
avg <- format(avg,digits=2)
plot(test, xlab="x", ylab="y", pch = 4)
legend("topleft", legend= c("Average: ", avg))
我想写x̄而不是“ average”-不知道这是否有可能发生,因为它不是常规符号-只是两者的组合(字母加上划线)。
我想摆脱的另一件事是“平均”一词后的换行符(请参见下图中的箭头):
最佳答案
这里有两个问题。首先,这是使用R中的?plotmath
处理的。要查找的运算符是bar()
。这不是功能,而是plotmath
可以理解的标记。
第二个是您需要一个将avg
转换为其值的表达式。您需要一个表达式,因为plotmath
可以使用它。有几种解决此问题的方法,但是我在下面使用的是bquote()
。您提供了一个表达式,包装在.( )
中的所有内容都将通过评估.( )
中的内容而转换为它的值。
这是您的代码和适当修改的legend()
调用:
test <- c(10,20,40,80,80)
avg <- mean(test)
avg <- format(avg,digits=2)
plot(test, xlab="x", ylab="y", pch = 4)
legend("topleft", legend = bquote(bar(x)*":" ~ .(avg)))
请注意,这将完全插入
avg
中的内容。您可能需要做avg <- round(avg)
或其他一些格式修复程序,以获得更好的外观。