如何在绘图标题或标签中为文本加下划线? (ggplot2)

Posted

技术标签:

【中文标题】如何在绘图标题或标签中为文本加下划线? (ggplot2)【英文标题】:How to underline text in a plot title or label? (ggplot2) 【发布时间】:2015-08-08 19:41:42 【问题描述】:

如果这是一个简单的问题,请原谅我的无知,但我似乎无法弄清楚如何在情节标题的任何部分下划线。我正在使用ggplot2

我能找到的最好的是 annotate("segment") done by hand,我创建了一个玩具图来说明它的方法。

df <- data.frame(x = 1:10, y = 1:10)

rngx <- 0.5 * range(df$x)[2]  # store mid-point of plot based on x-axis value
rngy <- 0.5 * range(df$y)[2]  # stores mid-point of y-axis for use in ggplot

ggplot(df, aes(x = x, y = y)) + 
  geom_point() +
  ggtitle("Oh how I wish for ..." ) +
  ggplot2::annotate("text", x = rngx, y = max(df$y) + 1, label = "underlining!", color = "red") +
  # create underline:
  ggplot2::annotate("segment", x = rngx-0.8, xend = rngx + 0.8, y= 10.1, yend=10.1)

uses bquote(underline() with base R

pertains to lines over and under nodes on a graph

uses plotmath and offers a workaround, but it didn't help

【问题讨论】:

【参考方案1】:

试试这个:

ggplot(df, aes(x = x, y = y)) + geom_point() +
  ggtitle(expression(paste("Oh how I wish for ", underline(underlining))))

或者,正如 BondedDust 在 cmets 中指出的那样,您可以完全避免 paste() 调用,但要注意 for

ggplot(df, aes(x = x, y = y)) + geom_point() +
  ggtitle(expression(Oh~how~I~wish~'for'~underline(underlining)))

或者 baptiste 建议的另一种更短的方法,不使用 expressionpaste() 或许多波浪号:

ggplot(df, aes(x = x, y = y)) + geom_point() +
  ggtitle(~"Oh how I wish for "*underline(underlining))

【讨论】:

如果使用expression 那么为什么不使用expression(Oh~how~I~wish~for ~underline(underlining))。不需要经常令人困惑的 plotmath paste() 电话。 @BondedDust 我不知道这种方法。当我尝试它时,我得到一个错误:Error: unexpected '~' in: "ggplot(df, aes(x = x, y = y)) + geom_point() + ggtitle(expression(Oh~how~I~wish~for ~"我做错了吗? 哦该死的。是f-word在做这件事。 R 解析器看到“for”并开始寻找“for”(实际上)一个索引。笨机器!试试:expression(Oh~how~I~wish~'for'~underline(underlining))。它与in 产生相同的解析错误。 ggtitle(~"Oh how I wish for "*underline(underlining)) 可能是最简单的 @lawyeR 它们是绘图分隔符。波浪号是空格分隔符/连接符,星号是非空格分隔符/连接符。它们可以很好地以可读的方式连接表达式和文本。有关更多信息/文档,您必须询问像 baptiste 这样的人(通过使用@baptiste),他是一位真正的绘图大师。我其实不知道相关文档在哪里。

以上是关于如何在绘图标题或标签中为文本加下划线? (ggplot2)的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android中为按钮的文本加下划线?

使 ZPL 标签中的文本加粗或加下划线?

如何在 CListCtrl 中为单个项目加下划线

Markdown - 如何给文本加下划线

如何在 MFC C++ 中为文本添加下划线

没有在 QTextBrowser 中为超链接加下划线