这是我的 ggplot 图表:
ggplot(mtcars) + geom_point(aes(cyl,mpg, color = cyl)) + scale_color_continuous(labels = c(expression(underline("Above 65 & over")),
expression(underline("45 - 64")),expression(underline("25 - 44")), expression(underline("15 - 24")),expression(underline("Under 15"))))
Run Code Online (Sandbox Code Playgroud)
第一:我想增加下划线的宽度。我怎样才能做到这一点?这个下划线的结尾也可以是一个箭头?是否有任何软件包可以帮助做到这一点?
其次,我想知道如何找出表达式函数可以接受的参数。?
我能想到的唯一解决方案是用网格“手动”绘制线条,例如
library(tidyverse)
library(grid)
png(filename = "example.png", width = 480, height = 480)
ggplot(mtcars) + geom_point(aes(cyl,mpg, color = cyl)) +
scale_color_continuous(labels = c(expression(underline(" Above 65 & over")),
expression(underline("45 - 64")),
expression(underline("25 - 44")),
expression(underline("15 - 24")),
expression(underline("Under 15"))))
grid.lines(x = c(0.89, 0.98), y = 0.592,
arrow = arrow(length = unit(1.5, "mm"), ends = "first"))
grid.lines(x = c(0.91, 0.98), y = 0.547,
arrow = arrow(length = unit(1.5, "mm"), ends = "first"))
grid.lines(x = c(0.91, 0.98), y = 0.502,
arrow = arrow(length = unit(1.5, "mm"), ends = "first"))
grid.lines(x = c(0.91, 0.98), y = 0.457,
arrow = arrow(length = unit(1.5, "mm"), ends = "first"))
grid.lines(x = c(0.831, 0.98), y = 0.414,
arrow = arrow(length = unit(1.5, "mm"), ends = "first"))
grid.gedit("GRID.line", gp = gpar(lwd = 2))
dev.off()
Run Code Online (Sandbox Code Playgroud)
由reprex 包( v2.0.0 )于 2021 年 7 月 16 日创建
这种方法有优点也有缺点,例如,您可以使线条看起来与您希望它们看起来完全一样,但是您必须准确指定它们将在图上绘制的位置,并且您不能动态地重新缩放图(即您需要在绘制线条之前指定最终绘图的尺寸)。我很想知道是否有更好的方法来解决这个问题。
有关网格图形的更多信息: