【问题标题】:Calculate bounding box of text on plot including text below baseline计算图上文本的边界框,包括基线以下的文本
【发布时间】:2015-01-08 14:41:05
【问题描述】:

我正在尝试在条形图中的水平条上绘制单词,因此单词的顶部和底部只是刷过条形图的顶部和底部。这归结为能够为文本计算一个紧密的边界框,包括下降和上升。例如,考虑

plot( 1:10, 1:10 )
text( 3, 7, "sample", adj=c(0,0), cex=3 )
sh = strheight( "sample" )
abline( h=c( 7, 7+3*sh  ) )

请注意,最上面的行恰好是“l”。 “p”从底线下降。

我怎样才能在这里计算出合适的底线?

或者,我如何绘制文本以使其填充给定高度,例如:

plot( 1:10, 1:10 )
ht = 2
abline( h=c( 7, 7+ht ) )
sh = strheight( "sample" )
sh
text( 3, 7, "sample", adj=c(0,0), cex=2/sh )

这个问题与寻找边界框有关(请参阅related stack overflow question)。由于下降问题,它似乎与那里的解决方案似乎不完全一样。

【问题讨论】:

  • 也许你可以把它变成一个表达式:text(3, 7, ex <- expression("sample"), adj=c(0,0), cex=3 ); sh <- strheight(ex)
  • 看起来很完美,@lukeA - 作为答案发布?

标签: r text plot par


【解决方案1】:

试试

plot( 1:10, 1:10 )
text(3, 7, ex <- expression("sample"), adj=c(0,0), cex=3 ) 
sh <- strheight(ex)
abline( h=c( 7, 7+3*sh  ) )

【讨论】:

  • (+1) 请注意,在 Windows 上,这仅在我使用 cairo 图形(即png('x.png', type='cairo'))绘制到png 设备时才对我有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 2015-10-30
  • 2014-10-30
  • 2014-05-25
  • 2020-05-17
  • 1970-01-01
相关资源
最近更新 更多