15

我在 R 中绘制了一个图表,但是斜体函数在主标题下非常令人沮丧:

Far Gardens 珊瑚礁遗址不同C. austriacus个体的地图绘制区域

任何帮助,将不胜感激。

4

3 回答 3

22

您没有提供有关您的数据的任何信息,但如果问题是标题中的斜体,则此代码可能会有所帮助:

plot(rnorm(100), main = substitute(paste(italic('p value'), " = 0.01")))

在此处输入图像描述

另请参阅此问题

于 2014-05-31T12:07:14.930 回答
17

我个人认为使用paste构造 plotmath 表达式是“丑陋的”;这是一种更清楚地展示“干净”使用的替代方法expression

 plot(rnorm(100),main=expression( italic(p~value) == 0.01 ))

使用的另一个原因expression是它将被 Lattice 函数接受,而该substitute方法不会:

xyplot(1~1,main=substitute( paste(italic('p value'), " = 0.01" )))
#Error in paste(italic("p value"), " = 0.01") : 
#  could not find function "italic"

expression()如果在替代调用中使用它会成功,但在这种情况下它是多余的行李。我曾经向 Deepayan Sarkar 抱怨过,他的回答是substitute返回一个未经评估的“呼叫”而不是一个真正的“表达”。

于 2014-05-31T22:58:24.587 回答
5

我认为其他用户已经回答了这个问题,但我发现它并没有那么简单和枯燥,并且建立在他们的输入之上,因为对于像你的示例中的长标题来说它变得很棘手。

这是我可以使用通用图为组合斜体/普通文本想到的最干净的代码行......让我知道它如何适用于您的数据(或任何阅读此内容并发现它不适用于某些图表的人,收件箱我,我喜欢学习,宁愿分享也不愿把它储存在我的脑袋里)

plot(1:10, main = expression('Mapped territories of different '*italic(C.~austriacus)*' individuals at the Far Gardens coral reef site'))

现在,要使用允许斜体或上标/下标文本(简单标签除外)的表达式或类似术语进行换行,您可以使用atop函数均匀地分隔超长标签。人们可能更喜欢使用预览应用程序进行最终编辑和标签,但如果您想在所有事情上坚持使用 R,您可以使用以下示例:

plot(1:10, main = expression(atop('Mapped territories of different '*italic(C.~austriacus),  ' individuals at the Far Gardens coral reef site')))

这给出了: 带有长混合标题的情节

感谢@42-

于 2018-01-01T02:06:44.403 回答