r - 如何增加ggplot中图例标签中绘制的下划线宽度?
问题描述
这是我的 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"))))
首先:我想增加下划线的宽度。我怎样才能做到这一点?这个下划线的结尾也可以是箭头吗?有没有什么包可以帮助做到这一点?
其次,我想知道如何找出表达式函数可以接受的参数。?
解决方案
我能想到的唯一解决方案是使用网格“手动”绘制线条,例如
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()
由reprex 包于 2021-07-16 创建 (v2.0.0 )
这种方法有优点和缺点,例如,您可以使线条看起来完全符合您的要求,但是您必须准确指定它们将在绘图上绘制的位置,并且您不能动态重新调整绘图(即您需要在绘制线条之前指定最终绘图的尺寸)。我很想知道是否有更好的方法来解决这个问题。
有关网格图形的更多信息:
推荐阅读
- python - 恒定时间列表切片
- cluster-analysis - 如何在python中实现三向聚类
- python - 收到“nPLS-00306:错误数量或类型的参数”错误。我应该如何继续修复它?
- c# - 在 ASP.net 中,什么是“公共 IConfiguration 配置”?
- python - 在 plotly 中实现多个链式回调
- python - 在 Azure Blob 存储中上传文件时出现 InvalidAuthenticationInfo 错误
- reactjs - react v5.2中的条件路由
- angular - 是否可以在 Golang 应用程序中嵌入 Angular?
- list - “项目和列表分配”下的 docs.raku.org 变量页面代码中可能存在的 BooBoo
- zapier - 在 Zapier Webhook 中设置 GT Metrix API