R plot - 如何在情节中添加注释和描述?

时间:2015-06-28 03:44:47

标签: r plot shiny

我对我的情节有很长的描述。而且我还需要在情节下面提供一些其他信息。

但我无法弄清楚我是如何做到的。这是我到目前为止所做的,

plot(1:10)
title(
   main = "Foo", 
   sub = 'Description \n Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. ', 
   font.sub = 1, 
   font.main = 1
)

结果不好,因为描述太长而且已被切断,单词描述也与xlable重叠,

enter image description here

如何在情节下方插入说明?

这就是我所追求的,

enter image description here

  • 附加信息 - 时间段。
  • 将描述包装在灰色框中。
  • 调整左侧的文字。

这些可能吗?

2 个答案:

答案 0 :(得分:6)

关于排版的一点教训:函数的sub参数允许您放置子标题。老实说,这些元素并不经常使用。你想要实现的是设置一个标题(这是一个非常不同的元素)。印刷惯例表示字幕位于图形和图像以及上表的图形下方。如果您使用像LaTeX或文字处理器这样的准备系统,我建议您不要使用R函数在图表“内部”(例如,作为图表本身的一部分)添加标题,而只是放置没有字幕的普通图表在您的文档中,然后使用可用于编辑的工具(单词等或LaTeX或Knitr甚至Powerpoint等)添加标题。

无论如何,关于排版的这个小而​​乏味的课程并不能解决你的问题。在这里,我提供了一个解决方案,其中包含基本R的layout函数和textplot包的gplots函数,但我一直认为有更高效,更优雅的方法来实现相同的目标。

library(gplots)
tex <- "Description Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \nAenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque \npenatibus et magnis dis parturient montes, ascetur ridiculus mus."
layout(matrix(c(2,1)), 0.5, 2)
par(mar=c(1,1,1,1))
textplot(tex, halign = "center")
par(mar=c(1,1,1,1))
plot(1:10)
title(main = "Foo", font.main = 1)

回到无聊的事情:从我的观点来看,这种做法非常棘手和低效,所以我建议你使用其他工具,就像我之前所说的那样。

最后但同样重要的是,我认为换行符的正确语法是\nword to break而不是\n word to break

结果如下:

enter image description here

答案 1 :(得分:2)

这可以通过使用“ mtext”来完成,并且“ \ n”和后面的单词之间不能有空格,例如。 “ \ nLorem”。

    text<- "Description \nLorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. \nAenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus \nmus. "
    par(mar = c(8, 4, 3, 3))
    plot(1:10, main = "Foo")
    mtext(text, side = 1, line = 6, cex = 0.8, adj = 0) 
    ## line is margin line, starting at 0 counting outwards; adj=0, left or bottom align, 1, right or top align

enter image description here