在图例中写x̄(意思是平均值)以及如何防止换行?

Gna*_*ark 4 r legend legend-properties plotmath

美好的一天!

我不熟悉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))
Run Code Online (Sandbox Code Playgroud)

我想写x̄而不是"average" - 想知道这是否可能,因为它不是常规符号 - 只是两个的组合(字母加上线).

我想摆脱的另一件事是"平均"之后的换行符(见下图中的箭头):

产量

Rei*_*son 8

这里有两个问题.第一个是?plotmath在R中使用它来处理.您正在寻找的运算符是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)))
Run Code Online (Sandbox Code Playgroud)

请注意,这将准确插入内容avg.你可能需要这样做

avg <- round(avg)
Run Code Online (Sandbox Code Playgroud)

或其他一些格式化修复,以获得美观​​和可呈现的东西.