r语言 geom_text设置标签自动换行
在 geom_text 中使用 label_wrap 或者 label_wrap_gen 函数,可以实现标签的自动换行。具体方法如下:
- 使用 label_wrap 函数:
library(ggplot2)
# 创建数据
data <- data.frame(x = letters[1:5], y = 1:5, label = c("这是一个很长的标签", "这也是一个很长的标签", "这是一个非常非常长的标签", "这个标签也很长", "这个标签也非常非常长"))
# 绘图
ggplot(data, aes(x, y)) +
geom_point() +
geom_text(aes(label = label), size = 3, hjust = 0, vjust = 0.5, label_wrap = 10)
在 label_wrap 参数中,设置每一行最多显示的字符数。上述代码中,设置为 10,表示每行最多显示 10 个字符,当标签超过 10 个字符时,自动换行。
- 使用 label_wrap_gen 函数:
library(ggplot2)
# 创建数据
data <- data.frame(x = letters[1:5], y = 1:5, label = c("这是一个很长的标签", "这也是一个很长的标签", "这是一个非常非常长的标签", "这个标签也很长", "这个标签也非常非常长"))
# 定义函数
label_wrap_gen <- function(width) {
function(x) {
paste0(strwrap(x, width = width), collapse = "\n")
}
}
# 绘图
ggplot(data, aes(x, y)) +
geom_point() +
geom_text(aes(label = label), size = 3, hjust = 0, vjust = 0.5, label_wrap_gen = label_wrap_gen(10))
在 label_wrap_gen 参数中,使用一个函数来自定义标签的换行方式。上述代码中,定义了一个函数 label_wrap_gen,该函数接受一个参数 width,表示每一行最多显示的字符数。在函数内部,使用 strwrap 函数将字符串按照指定宽度进行分割,并使用 \n 符号进行连接。最后,将每一行的字符串连接起来,形成最终的标签。将 label_wrap_gen 函数作为参数传递给 geom_text 函数中的 label_wrap_gen 参数
原文地址: https://www.cveoy.top/t/topic/fGED 著作权归作者所有。请勿转载和采集!