在情节中右/左对齐字幕位置
Posted
技术标签:
【中文标题】在情节中右/左对齐字幕位置【英文标题】:right/left align subtitle position in plot 【发布时间】:2017-11-29 10:00:55 【问题描述】:如何更改 r "base" plot 中的字幕位置。有什么特别的说法吗?我想动态地让字幕左对齐或右对齐。
数据
plot(mtcars$mpg,mtcars$qsec,xlab="",sub="I WANT TO\nBE RIGHT\nALIGNED")
用红色标出所需输出的数据
编辑
plottR <- function(...)
plot(...)
plottR(mtcars$mpg, mtcars$qsec, ylab="Y Must Center", xlab="X Must Center", main="Must center", sub="Must right-align",adj=1)
我可以在 plottR 中输入一些内容,让它只对齐字幕吗?
EDIT2
我刚发现。我可以评估 title()
内部情节。
plottR(mtcars$mpg, mtcars$qsec, ylab="Y Must Center", xlab="X Must Center", main = "Must Center", title(sub ="Hey Only\nim right\ncool huh?",adj=1))
【问题讨论】:
【参考方案1】:您可以使用par
设置adj
。从帮助页面:
值 0 生成左对齐文本、0.5(默认)居中文本和 1 个右对齐文本。 ([0, 1] 中的任何值都是允许的,并且在大多数设备上,该间隔之外的值也可以使用。)
缺点是它会影响 text
、mtext
和 title
的文本对齐方式。因此,如果我们想离开,我们必须将代码分成几部分。标题和 Y 轴标题保持不变。
您可以使用以下代码:
# store the current value of adj
adj.old <- par()$adj # default is 0.5
# plot with the current value of adj
plot(mtcars$mpg, mtcars$qsec, xlab="")
# set adj to right-aligned and plot the subtitle
par(adj = 1)
title(sub = "I WANT TO\nBE RIGHT\nALIGNED")
# reset adj to previous value
par(adj = adj.old)
这会生成以下图表:
【讨论】:
谢谢。我找到了 adj 参数。我的问题中没有提到它,但 adj 也会改变主标题。有没有办法只移动字幕? @AndreElrico 这基本上就是我在上面的代码中所做的。在adj
具有默认值(0.5)的条件下,我生成了一个带有plot
的图形,没有副标题,但带有Y 轴标题(您也可以在此处添加主标题)。然后,我更改adj = 1
并使用title
函数添加字幕。最后我重置了adj
。
它有效。那可能是最好的解决方案。可悲的是,我正在使用一个调用 plot 的函数,并且我正在使用 ...
参数。所以我不能在那里进行程序编码。但这是一个很好的解决方法:-)
@AndreElrico 这只是一个建议:您可以使用上面的代码,包括图表,然后发布一个新问题,询问适合您需求的替代方案。如果您让我通知我有关新问题的信息,我将立即考虑投票。祝你好运!
嘿,我刚刚更新了问题以更准确地匹配我的情况。如果您有任何想法,建议让我知道:-)以上是关于在情节中右/左对齐字幕位置的主要内容,如果未能解决你的问题,请参考以下文章
如何将 ActionBar 标题设置在中间而不是默认的左对齐位置?