【问题标题】:Adding text or title into R graph / plot将文本或标题添加到 R 图形/绘图中
【发布时间】:2019-06-04 02:10:22
【问题描述】:

将文本添加到 R 中绘图/图形的特定位置。

你好。我在 R 中制作了一系列图。我想节省空间,所以我想删除我之前使用“main”命令的标题。

我想将标题放在绘图/图表的顶部中间。

在网上查找时,我发现了放置文本的好代码,如下所示:http://sphaerula.com/legacy/R/placingTextInPlots.html

##  par( "usr" ) returns a vector containing xleft, xright, ybottom, ytop.
usr <- par( "usr" )
##  Place the text. Note the use of the adj parameter.
##  Left top corner:
text( usr[ 1 ], usr[ 4 ], "left top",     adj = c( 0, 1 ), col = "blue" )

##  Left bottom corner:
text( usr[ 1 ], usr[ 3 ], "left bottom",  adj = c( 0, 0 ), col = "blue" )
##  Right top corner:
text( usr[ 2 ], usr[ 4 ], "right top",    adj = c( 1, 1 ), col = "blue" )
##  Right bottom corner:
text( usr[ 2 ], usr[ 3 ], "right bottom", adj = c( 1, 0 ), col = "blue" )

所有这些命令都将文本放在特定的角落。我想把它放在中间。有没有关于如何做到这一点的建议?一种原始的方法是在左上角的文本中添加大量空格......但是还有什么更优雅的吗?

【问题讨论】:

    标签: r graph


    【解决方案1】:

    假设您所说的“中间”是指“中心顶部”,以下应该可以工作:

    text(x = median(c(usr[2], usr[1])), 
         y = usr[4],
         labels = "center top",
         adj = c(.5, 1),
         col = "blue")
    

    【讨论】:

    • 我可以再问一个问题吗?如果我要将标签移动到图表的左侧,例如图表之外......应该如何更改代码?我看到使用中位数你把它放在中间。
    • 我不确定你的意思。您能否更具体地说明您希望最终结果是什么?如果你想把文本放在页边距,也许可以试试 mtext() 函数。
    • 所以,我正在制作一个多面板图。有多行多列。每行将对应一个字母 - 例如 A、B、C 等......并且只有每行中的第一个面板或 plot.graph 会有这个字母。我试过多行文字。它将字母排成一行并平行于 y 轴。我正在寻找的是将它放在轴的左侧一点,并旋转 90 度的东西。因此,这样标签 A(或 B 或 C 等)将位于轴旁边,并且会像在 X 轴和标题上一样朝上。您对此有什么建议吗?
    • 知道了 - 感谢您的描述。我认为这取决于您使用的框架(绘图包)。我会为此创建一个单独的问题!
    • 感谢您的帮助。我想它现在实际上已经解决了。这就是我所做的:我尝试使用 las,并且离得更近了。然后在搜索时我在这里找到了答案:stackoverflow.com/questions/24320017/…我更喜欢你的原始答案而不是这个。但是,在我提出第一个问题后,我被指示不要那样做,但无论如何,再次感谢您帮助我提高 R 技能!
    猜你喜欢
    • 2018-10-17
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 2012-12-24
    相关资源
    最近更新 更多