如何创建包含多行文字的图例标签,然后在单独的行上创建数学表达式,避免出现下列问题?
接受的答案here对传说不起作用,据我所知,涉及bquote的替代答案对我的情况也不起作用,如下图所示。
可重复的代码:
# multiple lines in first legend label are not horizontally aligned
# also, entire legend label is not vertically aligned with box
plot( runif(10), runif(10) )
legend( x='top', fill=grey.colors(2), bty='n', ncol=2, inset=.1,
legend=c( expression( "Hello world\nGoodbye world\n" ~ 64 %/% 8 %/% 8 ),
'something else' ) )
# both above problems fixed, but math expression doesn't display right
plot( runif(10), runif(10) )
legend( x='top', fill=grey.colors(2), bty='n', ncol=2, inset=.1,
legend=c( paste( "Hello world\nGoodbye world\n", expression( 64 %/% 8 %/% 8 ) ),
'something else' ) )
# nested atops within bquote almost works in title, but font size is not uniform
# does not work at all in legend, anyway
plot( runif(10), runif(10) )
label1 = bquote( atop( atop( "Hello world", "Goodbye world" ), 64 %/% 8 %/% 8 ) )
labels = c( label1, 'something else' )
title( label1 )
legend( x='top', fill=grey.colors(2), bty='n', ncol=2, inset=.1, legend=labels )
答案 0 :(得分:1)
一个选项是
plot( runif(10), runif(10) )
legend( x='top', fill=grey.colors(2), bty='n', ncol=2, inset=.1,
legend=c( expression( atop("Hello world\nGoodbye world",64 %/% 8 %/% 8) ),
'something else' ) )
或
plot( runif(10), runif(10) )
legend( x='top', fill=grey.colors(2), bty='n', ncol=2, inset=.1,
legend=c( expression( atop(atop("Hello world","Goodbye world"),64 %/% 8 %/% 8) ),
'something else' ) )
但实际上R并不想在?plotmath
模式下使用换行符。如果你需要finder控制你的传说,你最好在Adobe Illustrator中输出pdf和精细编辑等。