【发布时间】:2018-04-07 00:31:26
【问题描述】:
(x-发布到community.rstudio.com)
我想知道是否可以通过编程方式更改ggplot2 中的轴文本,或者是否有一些本地方法可以在ggplot2 中执行此操作。在这个代表中,我的想法是我想将变量y 的轴文本加粗,该变量的绝对值x 超过1.5。我可以通过theme()手动添加,效果很好:
library(ggplot2)
library(dplyr)
library(forcats)
set.seed(2939)
df <- data.frame(x = rnorm(15), y = paste0("y", 1:15), group = rep(1:3, 5))
df <- mutate(df, big_number = abs(x) > 1.5, face = ifelse(big_number, "bold",
"plain"))
p <- ggplot(df, aes(x = x, y = fct_inorder(y), col = big_number)) + geom_point() +
theme(axis.text.y = element_text(face = df$face))
p
没有分面的图 1
但是,如果我通过group 来区分它,y 会被重新排序,ggplot2 不知道face 是如何连接到df 和y,所以它只是以相同的顺序加粗第一个情节。
p + facet_grid(group ~ .)
带有刻面的图 2
如果我为每个人使用不同的比例,情况会更糟。
p + facet_grid(group ~ ., scales = "free")
带有刻面和不同尺度的图 3
你怎么看?有没有一种通用的方法可以在这里始终如一地处理这个问题?
【问题讨论】:
标签: r ggplot2 expression