r - 包含表达式的图例文本换行

标签 r ggplot2 legend

我一直在寻找 ggplot2 中的包装函数,它可以帮助我将图例文本放在定义的矩形区域中。

到目前为止我还没有找到。这是我的案例:

library (ggplot2)
p = ggplot (mtcars, aes (x = mpg, y= cyl,color = factor (cyl)))
p + geom_point()
z = unique (factor (mtcars$cyl))
p + geom_point() + scale_color_manual(name="legend title", breaks = z, 
                                  labels = c (expression(a + b + c + d + e + f + g + h + i), expression(x) ,  expression(y ) ),
                                  values = c("red","blue","green") )

我想要的是将长表达式包裹在五个字符的宽度内。

是否有任何函数可以自动将每个图例键的文本包装在定义的文本宽度中,我想知道这是否也适用于表达式。

最佳答案

以下使用 stringr 中的 str_wrap 应该适合您。它按照要求使用值 5 进行换行,但看起来不太好。

library(ggplot2)
library(stringr)
p = ggplot (mtcars, aes (x = mpg, y= cyl,color = factor (cyl)))
p + geom_point()
z = unique (factor (mtcars$cyl))
p + geom_point() + scale_color_manual(name="legend title", breaks = z, 
                                      labels = c(str_wrap(expression(a + b + c + d + e + f + g + h + i), 5), expression(x) ,  expression(y ) ),
                                      values = c("red","blue","green") )

enter image description here

关于r - 包含表达式的图例文本换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37042780/

相关文章:

R - 融合配对数据的 dplyr 交叉表

r - 将子集函数应用于数据帧列表

r - R中斜率系数的推论

r - Shiny +ggplot : How to subset reactive data object?

R plotly 4.5.2版散点图图例气泡大小设置

list - R:提取 lm() 属性

r - 使用ggplot2绘制具有多个子多边形和孔的SpatialPolygons

r - 在ggplot2中,当我们使用nudge_y时,偏移距离是如何计算的?

r - Base R 中的图例 : Can fill refrain from drawing boxes on some lines? 可以填充覆盖整个符号的绘制框吗?

r - 在直方图中添加图例(格子)