hpy*_*hpy 2 label r facet ggplot2 boxplot
我有一个tibble名为的数据框my_data,如下所示:
> my_data
# A tibble: 60 x 4
SPECIES simulation_id psi_hat p_hat
<chr> <int> <dbl> <dbl>
1 Grey squirrel 74 0.527 0.306
2 Grey squirrel 102 0.526 0.316
3 Grey squirrel 142 0.527 0.309
4 Grey squirrel 121 0.527 0.309
5 Grey squirrel 25 0.526 0.317
6 Grey squirrel 50 0.527 0.309
7 Grey squirrel 67 0.491 0.326
8 Grey squirrel 19 0.527 0.306
9 Grey squirrel 174 0.527 0.302
10 Grey squirrel 46 0.527 0.309
# ... with 50 more rows
Run Code Online (Sandbox Code Playgroud)
有三种不同SPECIES的my_data.
我想为每个变量psi_hat和p_hat变量制作一个箱形图SPECIES.我开始准备我的tibble喜欢:
my_data_plot <- my_data %>%
gather("psi_hat", "p_hat", key = "parameter", value = "estimate")
Run Code Online (Sandbox Code Playgroud)
然后将其绘制成如下:
ggplot(data = my_data_plot, mapping = aes(x = SPECIES)) +
geom_boxplot(mapping = aes(y = estimate)) +
facet_grid(. ~ parameter)
Run Code Online (Sandbox Code Playgroud)
这给了我:
我现在要做的是将facet标记为实际的希腊符号而不是例如"psi_hat",以便"psi_hat"将得到expression(hat(psi))与facet标签等效的符号.
我知道facet_grid我可以使用labeller = label_parse,但这意味着我的变量名必须是实际表达式,但是当变量名必须是函数调用(即hat(psi))时,我不知道如何做到这一点.例如,我试过my_data <- my_data %>% rename(hat(psi) = "psi_hat")这给了我这个错误:
Error: unexpected '=' in:
"my_data <- my_data %>%
rename(hat(psi) ="
Run Code Online (Sandbox Code Playgroud)
我也考虑过labeller = bquote,但是当我在这个图中只有列时,这似乎要求我指定行和列.
所以,我想知道是否有需要或方式为我手动定义这些方面标签的表达式?或者是否有更多的算法实现这一目标?
谢谢!
这里是dput()的my_data:
structure(list(SPECIES = c("Grey squirrel", "Grey squirrel",
"Grey squirrel", "Grey squirrel", "Grey squirrel", "Grey squirrel",
"Grey squirrel", "Grey squirrel", "Grey squirrel", "Grey squirrel",
"Grey squirrel", "Grey squirrel", "Grey squirrel", "Grey squirrel",
"Grey squirrel", "Grey squirrel", "Grey squirrel", "Grey squirrel",
"Grey squirrel", "Grey squirrel", "Red fox", "Red fox", "Red fox",
"Red fox", "Red fox", "Red fox", "Red fox", "Red fox", "Red fox",
"Red fox", "Red fox", "Red fox", "Red fox", "Red fox", "Red fox",
"Red fox", "Red fox", "Red fox", "Red fox", "Red fox", "Roe Deer",
"Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer",
"Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer",
"Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer", "Roe Deer",
"Roe Deer"), simulation_id = c(74L, 102L, 142L, 121L, 25L, 50L,
67L, 19L, 174L, 46L, 162L, 31L, 199L, 147L, 163L, 18L, 170L,
172L, 106L, 157L, 158L, 200L, 187L, 103L, 144L, 77L, 78L, 139L,
75L, 57L, 171L, 195L, 90L, 136L, 109L, 30L, 152L, 97L, 74L, 8L,
161L, 73L, 130L, 151L, 150L, 184L, 198L, 177L, 97L, 88L, 123L,
190L, 83L, 75L, 143L, 159L, 103L, 16L, 200L, 2L), psi_hat = c(0.526863413764263,
0.525835491514182, 0.526515540307052, 0.526515540305866, 0.525668605170743,
0.526515540309525, 0.491205525300549, 0.526863413760793, 0.527216807861263,
0.526515540305866, 0.526515540306427, 0.526003604543373, 0.526003604547465,
0.527039406294591, 0.491512271725946, 0.526343604414775, 0.526515540311415,
0.490421555053814, 0.526003604541449, 0.526688801109048, 0.79766843868635,
0.801911295111649, 0.797668438685209, 0.79766843868356, 0.736091175845588,
0.801911294988272, 0.797668438684876, 0.797668438686537, 0.764665429923081,
0.806326437262252, 0.769630414385322, 0.806326437300003, 0.733141462334417,
0.801911295128621, 0.777085591061084, 0.801911295171974, 0.703578316906639,
0.777085591642251, 0.793615265014951, 0.806326437459794, 0.662677377511043,
0.701654360968483, 0.704629679152389, 0.70622149033349, 0.663754148939585,
0.704629679094459, 0.705416487515374, 0.677464341430293, 0.707045218951227,
0.662338556587023, 0.674456696561803, 0.701654360967044, 0.639650521202062,
0.625380503760432, 0.704629679094605, 0.664561357366103, 0.704629679143759,
0.636859548660175, 0.66375414894085, 0.707045219029558), p_hat = c(0.305763297214646,
0.315819064091298, 0.309115591855344, 0.309115591855175, 0.317494717397372,
0.309115591855145, 0.326303719905328, 0.305763297214592, 0.302410595448716,
0.309115591855175, 0.309115591855139, 0.314143327866378, 0.314143327866402,
0.304086998925611, 0.322825888575185, 0.310791594807592, 0.309115591855151,
0.335654773573103, 0.314143327866529, 0.307439493743849, 0.0690109229482788,
0.0677020110780009, 0.0690109229483345, 0.0690109229474338, 0.0744703724155286,
0.0677020110840996, 0.0690109229257095, 0.0690109229256593, 0.0704604468308165,
0.0663903378649822, 0.0691283355131073, 0.0663903378091044, 0.0737444081467713,
0.0677020110873479, 0.0665479524846632, 0.0677020110750217, 0.073966658329169,
0.0665479525245426, 0.0703192747621257, 0.0663903375835434, 0.166196509352831,
0.157146399287494, 0.152026850762839, 0.14946227707946, 0.163675003941755,
0.152026850344473, 0.150744974403108, 0.15740696035152, 0.148178744896067,
0.167783160277052, 0.162569260757996, 0.157146399287514, 0.162501076719809,
0.177160578693552, 0.152026850344548, 0.162149934290892, 0.152026850679299,
0.168221557280052, 0.163675003941561, 0.148178745461308)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -60L))
Run Code Online (Sandbox Code Playgroud)
你可以试试这个.因为您的数据是长格式的,所以我使用case_when一个表达式来重命名变量,以便由贴标机读取
library(tidyverse)
df %>%
gather(key = "parameter", value = "estimate", -SPECIES, -simulation_id) %>%
mutate(parameter = case_when(
parameter == "psi_hat" ~ "hat(psi)",
parameter == "p_hat" ~ "hat(p)"
)) %>%
ggplot(aes(x = SPECIES)) +
geom_boxplot(mapping = aes(y = estimate)) +
facet_grid(. ~ parameter, labeller = label_parsed)
Run Code Online (Sandbox Code Playgroud)

由reprex包(v0.2.0)于2018-08-18创建.
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |