bquote,解析,表达式以在ggplot中获取多行标签,并带有希腊字母和变量作为下标

时间:2019-06-19 13:05:42

标签: r parsing ggplot2 expression plotmath

假设我有

paste0("Year = ",index,"\nN = ",length((dfGBD %>% filter(year==index))[[vbl]]),
                                  " Bandwidth = ",round(stats::bw.nrd(log((dfGBD %>% filter(year == index))[[vbl]])),2),
                                  "\nSkewness:", round(e1071::skewness(log((dfGBD %>% filter(year==index))[[vbl]])), 2),
                                  " Kurtosis:",round(e1071::kurtosis(log((dfGBD %>% filter(year==index))[[vbl]])),2),
                                  "\nmu[",vbl,"] = ", round(mean((dfGBD %>% filter(year==index))[[vbl]]),2),
                                  " sigma[",vbl,"] = ",round(sd((dfGBD %>% filter(year==index))[[vbl]]),2)
                                  )
sapply年至index年内

此外,vbl是具有变量名称的字符串。 sapply产生labels变量的向量factor。 应用ggplot得到的标签类似于下一个:

Year = 2000
N = 195 Bandwidth = 0.09
Skewness: 0 Kurtosis: -0.56
mu[Mortality] = 7750.85 sigma[Mortality] = 1803.28

到这里,一切都很好。我已经写了mu[vbl]sigma[vbl]的解析和下标表示法,以获取希腊字母以及变量名称保存在vbl中作为下标。

首先,我尝试了facet_wrap和选项labeller = "label_parsed"。我得到一个错误,我只解决了在反引号``之间写入字符串的问题,但是\n无效。我使用bquote和/或parse和/或expression和/或atop等尝试了许多选项,以便获得上述多行结果以及我所描述的期望输出以上。但是只能得到一行或非常丑陋的输出,或者大多数情况下是错误,而且我还看不到希腊字母。

那我该怎么办?

PS:如在其他stackoverflow中回答的那样,\n在这种情况下不起作用,因此建议为每行列出一个带有bquote的列表。我尝试了一下,但是随后出现一个错误,我认为是由于所有列表的元素数量和某个要素的标签数量不兼容(label可能不是list?)

谢谢!

0 个答案:

没有答案