当标题是变量名时如何向ggplot添加标题?

Posted

技术标签:

【中文标题】当标题是变量名时如何向ggplot添加标题?【英文标题】:How to add a title to a ggplot when the title is a variable name? 【发布时间】:2011-01-22 12:23:15 【问题描述】:

在 ggplot 结束时,这可以正常工作:

+ opts(title = expression("Chart chart_title..."))

但这不是:

chart_title = "foo"
+ opts(title = expression(chart_title))

也不是这个:

chart_title = "foo"
+ opts(title = chart_title)

当标题是变量名时,如何向 ggplot 添加标题?

【问题讨论】:

我很困惑,以下对我来说很好用:> meow qplot(rnorm(100), rnorm(100)) + opts(title = meow)跨度> 'opts' 已弃用。请改用“主题”。 【参考方案1】:

正如其他人指出的那样,您的示例似乎适用于变量 chart_title 是字符串或表达式的情况。有时构造 title 变量很棘手;例如,如果chart_title 使用了一些其他变量,并且如果您还使用了一些希腊字符,那么简单的paste(...) 就不够用了,可能会出现令人困惑的情况。要构建这样的标题,您可以使用以下内容:

foo <- rnorm(100)
number <- 1
chart_title <- substitute(paste("Chart no. ",number,": ",alpha," vs ",beta,sep=""), list(number = number))
qplot(foo,foo) + opts(title = chart_title)

另一个在构造标题时派上用场的函数是bquote()。程序化标题构建可能是一件麻烦事; R FAQ 7.13 (http://cran.r-project.org/doc/FAQ/R-FAQ.html) 可以帮助您入门,但即使是该常见问题解答也基本上会告诉您在有疑问时搜索 R-Help。

【讨论】:

奇怪...我认为这是行尾隐藏的回车(我需要更改文本编辑器!)非常感谢。【参考方案2】:

请提供一个可重现的例子。以下对我来说很好:

title <- "My title"
qplot(mpg, wt, data = mtcars) + opts(title = title)

从 0.9.2 版开始,opts 一直是 replace 由 theme 提供:

qplot(mpg, wt, data = mtcars) + theme(title = title)

另外,请参阅?ggtitle

【讨论】:

【参考方案3】:

Opts 已被弃用。一种选择是使用 labs()

myTitle <- "My title"
qplot(mpg, wt, data = mtcars) + labs(title = myTitle)

差不多。

【讨论】:

【参考方案4】:

ggtitle( paste("总和是=", mysum, "计数是=", N))

mysum 和 N 是变量

【讨论】:

以上是关于当标题是变量名时如何向ggplot添加标题?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在使用动态变量名时在 Sparklyr 中加 1 实际上加 2?

当宏用作变量名时,有啥方法可以跳过宏替换(在预处理期间)?

处理Scala Async和Future变量的异常,在try块外访问变量名时出错

用ggplot绘制2个散点图[重复]

动态变量名 php 7.4 和赋值

在过程宏中,如何检查字符串是不是是有效的变量名而不是关键字?