R 可以在同一ggplot2轴内改变文本大小吗?

R 可以在同一ggplot2轴内改变文本大小吗?,r,ggplot2,R,Ggplot2,我想使用ggplot2绘制一个坐标轴文本大小在不同标签之间变化的绘图-例如,每五个记号使用较大的字体,中间记号使用较小的字体。我在scale\u x\u continuous中查看了使用minor\u breaks,但我找不到标记minor breaks的方法 到目前为止,我所能做的最好的工作就是修改,我使用bquote传递轴标签的表达式: label_span <- 1:40 ShrinkIf <- Vectorize(function(val) { if (val %% 5

我想使用ggplot2绘制一个坐标轴文本大小在不同标签之间变化的绘图-例如,每五个记号使用较大的字体,中间记号使用较小的字体。我在
scale\u x\u continuous
中查看了使用
minor\u breaks
,但我找不到标记minor breaks的方法

到目前为止,我所能做的最好的工作就是修改,我使用
bquote
传递轴标签的表达式:

label_span <- 1:40

ShrinkIf <- Vectorize(function(val) {
  if (val %% 5 == 0) return(as.character(val))
  return(bquote(scriptstyle(.(as.character(val)))))
})

x_labels <- ShrinkIf(label_span)

x_labels <- purrr::invoke(expression, x_labels)

ggplot(mtcars, aes(x = mpg , y = hp)) +
  geom_point() + 
  scale_x_continuous(breaks = label_span, labels = x_labels)

label\u span您可以创建文本大小的向量,并使用
element\u text()


干净简单,就这样了。谢谢
library(ggplot2)
ggplot(mtcars, aes(x = mpg, y = hp)) + 
    geom_point() + 
    theme(
        axis.text.x = element_text(size = rep(c(12,24), 3))
    )