gpt4 book ai didi

r - ggfittext 可以自动选择文本旋转吗?

转载 作者:行者123 更新时间:2023-12-05 05:55:43 26 4
gpt4 key购买 nike

我有一个标有矩形的图。为确保文本保留在矩形内,我使用了 ggfittext 包。示例如下:

library(ggplot2)
library(ggfittext)

df <- data.frame(
xmin = c(1000, 4000), xmax = c(3000, 5000),
ymin = c(1, 3), ymax = c(2, 5),
label = "My Label"
)

p <- ggplot(df, aes(xmin = xmin, xmax = xmax,
ymin = ymin, ymax = ymax)) +
geom_rect(fill = "grey60")
p + geom_fit_text(aes(label = label),
size = 40)

您可能会注意到,如果旋转右侧第二个矩形中的标签,它会更适合,并且标签不需要缩小太多。我可以轻松地手动完成:

p + geom_fit_text(aes(label = label),
size = 40, angle = c(0, 90))

reprex package 创建于 2021-09-29 (v2.0.1)

但是,我想自动检测文本放置是水平放置还是垂直放置更好。是否可以在 ggfittext 或替代包中执行此操作?我正在寻找视觉维度比数据维度更重要的答案:示例中的这些矩形在数据空间中比它们的高度宽得多,但在视觉空间中不是。

最佳答案

我是 ggfittext 的作者。 ggfittext 无法按照您描述的方式自动旋转文本,而且我不知道有任何软件包可以做到这一点。

geom_fit_text() 确实包含一个 reflow 参数,该参数将重排多词文本以更好地适应框。这不能通过简单地缩短行长直到文本适合,但会找到使文本的纵横比最接近框的纵横比的行长。显然,这对于较长的文本标签更有用。

library(ggplot2)
library(ggfittext)

df <- data.frame(
xmin = c(1000, 4000), xmax = c(3000, 5000),
ymin = c(1, 3), ymax = c(2, 5),
label = "My Label"
)

ggplot(df, aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax)) +
geom_rect(fill = "grey60") +
geom_fit_text(aes(label = label), size = 40, reflow = TRUE)

reprex package 创建于 2021-12-18 (v2.0.1.9000)

关于r - ggfittext 可以自动选择文本旋转吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69380304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com