使用 glue::glue 粘贴会更改 facet 中值的顺序
pasting with glue::glue changes order of values in facet
基于此响应 ,我成功创建了一个在 facet 标签中包含希腊字母的 ggplot。
但是胶水库改变了我标签FacetX的顺序,我该如何处理?
这是我的问题示例,我想要 500 - 1000 - 5000 而不是 1000 - 500 - 5000。
library(ggplot2)
library(glue)
df <- expand.grid(1:3, 1:3)
df$FacetX <- c(500,1000,5000)[df$Var1]
df$FacetY <- c(0.1, 1, 10)[df$Var2]
ggplot(df, aes(Var1, Var2)) +
geom_point() +
facet_grid(glue('sigma[E]^2*" = {FacetY}"') ~ glue("'p = {FacetX}'"),
labeller = label_parsed)
最佳,
这与希腊字母无关,但 glue::glue
的使用会扰乱您的关卡。 (它根据递增的值分配等级顺序,这里1<5)
您可以使用 forcats::fct_inorder 来防止这种情况
library(ggplot2)
library(glue)
df <- expand.grid(1:3, 1:3)
df$FacetX <- c(500,1000,5000)[df$Var1]
df$FacetY <- c(0.1, 1, 10)[df$Var2]
ggplot(df, aes(Var1, Var2)) +
geom_point() +
facet_grid(glue('sigma[E]^2*" = {FacetY}"') ~ forcats::fct_inorder(glue("'p = {FacetX}'")),
labeller = label_parsed)
由 reprex package (v2.0.1)
于 2022-04-06 创建
基于此响应
但是胶水库改变了我标签FacetX的顺序,我该如何处理?
这是我的问题示例,我想要 500 - 1000 - 5000 而不是 1000 - 500 - 5000。
library(ggplot2)
library(glue)
df <- expand.grid(1:3, 1:3)
df$FacetX <- c(500,1000,5000)[df$Var1]
df$FacetY <- c(0.1, 1, 10)[df$Var2]
ggplot(df, aes(Var1, Var2)) +
geom_point() +
facet_grid(glue('sigma[E]^2*" = {FacetY}"') ~ glue("'p = {FacetX}'"),
labeller = label_parsed)
最佳,
这与希腊字母无关,但 glue::glue
的使用会扰乱您的关卡。 (它根据递增的值分配等级顺序,这里1<5)
您可以使用 forcats::fct_inorder 来防止这种情况
library(ggplot2)
library(glue)
df <- expand.grid(1:3, 1:3)
df$FacetX <- c(500,1000,5000)[df$Var1]
df$FacetY <- c(0.1, 1, 10)[df$Var2]
ggplot(df, aes(Var1, Var2)) +
geom_point() +
facet_grid(glue('sigma[E]^2*" = {FacetY}"') ~ forcats::fct_inorder(glue("'p = {FacetX}'")),
labeller = label_parsed)
由 reprex package (v2.0.1)
于 2022-04-06 创建