我可以在 geom_text 中设置最小字体大小吗?

Can I set a minimum font size in geom_text?

我正在用变量 x 和 y 构建散点图。每个点都使用 geom_text 标记。 geom_text 的大小由第三个变量 z.

控制

有没有办法指定可接受的最小字体大小?我看过 this question 但它只讨论了如何将大小设置为固定值。

在下面的示例中,我使用 mtcars 重现了该问题,geom_text 的大小由 'disp' 控制。它有效,但有些标签太小而无法阅读(一旦 'disp' 的值低于大约 100)。

library(ggplot2)
ggplot(mtcars, aes(y=mpg, x=cyl)) + geom_text(aes(label=rownames(mtcars),size=disp))

我希望能够指定,例如,大小由 'disp' 的值控制,但不应小于 3。

显然这意味着较大的文本也被放大了。

您可以在scale_size

中设置范围
ggplot(mtcars, aes(y=mpg, x=cyl)) + 
    geom_text(aes(label=rownames(mtcars),size=disp)) +
    scale_size(range = c(6, 9))

# a little more reasonable
ggplot(mtcars, aes(y=mpg, x=cyl)) + 
    geom_text(aes(label=rownames(mtcars),size=disp)) +
    scale_size(range = c(2, 5))