【问题标题】:Axis Labels in R: p(Y=y | theta = something)R中的轴标签:p(Y = y | theta = something)
【发布时间】:2016-02-05 20:19:36
【问题描述】:

我已经搜索了所有内容,但找不到具有条件符号的代码

p(a|b)

我使用的代码(通用 R 代码,不是 ggplot)是

ylab = bquote(Pr( Y == y |  theta == .(mytheta) , n == .(n)))

这给了我一个标签是

Pr(|(Y=y,theta=0.2), n=10)

theta 是适当的希腊符号,mytheta 是 0.2,n 是 10。 所以所有不起作用的是条件符号。在我看来,R 正在接受 |对于一个或...

我还没有尝试过 ggplot,但想先让它在纯 R 中工作。

感谢您的帮助。

【问题讨论】:

  • bquote(Pr( Y == y ~'|'~ theta == .(mytheta) , n == .(n))) 似乎有效
  • 这对我有用,看起来最优雅!谢谢!我会将其标记为答案,但我在这里看不到该选项...

标签: r axis-labels


【解决方案1】:

我认为看到“管道”(相对于“或”)被解析为波兰符号非常有趣。可以使用符号字体使用?plotmath?points 中描述的方法访问条件栏

plot(1,1, main=bquote(Pr( Y == y ~ symbol("\275") ~ theta == .(mytheta) , n == .(n))))

(我确实尝试使用%|% 作为缺少的条件符号创建一个特殊的用户定义函数,但失败了。)

对于您要求插图的评论问题(实际上是如何以等效方式使用substitute的两个版本:

mytheta = 0.2
plot(rnorm(100), rnorm(100), ylab= substitute(P(Y~"|"~ mytheta ), list(mytheta=mytheta)) )
plot(rnorm(100), rnorm(100), ylab= substitute(P(Y~"|"~ theta == mytheta ), 
                                                    list(mytheta=mytheta))  )
 # Second version prints greek-theta == value

【讨论】:

  • 非常感谢,这很好用。我更喜欢user20650,但它与您的基本相同。我只是不必记住它的符号编号。感谢两位的帮助!
  • 这实际上是方便/记忆与排版纯度的问题。如果您更改为用户内存方面的复选标记,我不会被冒犯。我会在我的回答中添加对您的评论问题的回复。
【解决方案2】:

我总是只使用expression。我之前没用过bquote

已编辑

对不起,我做了一堆这些,显然导出了错误的一个。使用paste 而不是paste0

plot(rnorm(100), rnorm(100), ylab= expression(paste("P(Y| ", theta," )")))

【讨论】:

  • Alex:你是否对 paste()-plotmath 函数感到困惑?它与对字符向量进行操作的粘贴函数不同。
  • @42- 我可能刚刚导出了错误的情节,但我认为你可能是对的
  • substitute(expression( ... , list(token=val))) 可以用来代替bquote。但是bquote 具有表达经济性。
  • 谢谢!现在明白了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
相关资源
最近更新 更多