gpt4 book ai didi

轴标签与表达式的 R 对齐

转载 作者:行者123 更新时间:2023-12-04 19:01:50 28 4
gpt4 key购买 nike

我想绘制一个变量名称及其符号。因为某些变量的名称很长,所以我试图将换行符与轴标签混合使用。这会导致对齐中发生有趣的事情:

par(mar=c(1,12,1,1))

plot( y=1:6, 1:6, yaxt="n", ylim=c(1,6), ylab="" )

axis(2, at=6:1, las=1,
labels=c(
expression( paste( 'Variable, ',rho, sep="" ) ),
expression( paste( 'Another variable,\n',alpha, sep="" ) ),
expression( paste( 'Also\nvariable,\n',beta, sep="" ) ),
expression( paste( 'This\nvariable too, ',Gamma, sep="" ) ),
expression( paste( 'Verybigname\nvariable,',C[zeta], sep="" ) ),
expression( paste( 'Verybigname\nvariable,',C[zeta],"moretext\n",C[delta], sep="" ) ) ))

第一行(从顶部开始)是我期望其他行以某种方式看起来的样子,在轴旁边是合理的。

其余的行都显示了一个基本问题,即变量名称相对于表达式的第二个元素是合理的,而不是相对于轴。这在最后一行变得特别奇怪,其中在变量名和它的符号之间插入了一个大空格。

理想情况下,我希望标签正确对齐,并以刻度线为中心。

最佳答案

这是我使用 text 所能做的最好的事情在侧面“手动”定位。 (许多使用 'hadj' 和 'padj' 轴的努力都失败了。)为了尝试在文本值下获取希腊语绘图,我需要使用 atop功能。这反过来需要使用 phantom .我主要使用纯 plotmath 和 ~*作为连接器而不是依赖 paste ,但在这里您使用 "\n"确实会换行(我发现这令人惊讶)。顺便说一下,plotmath paste函数实际上不接受 sep争论。

par(mar=c(1,12,1,1))
plot( y=1:6, 1:6, yaxt="n", ylim=c(1,6), ylab="" )

axis(2, at=6:1, las=1,
labels=rep("",6 ))
text( 0.5, 6:1- c(0,0,.2,.1,.1,.1), c(
expression( Variable~~rho ) ,
expression( atop(~~Another~variable, phantom("Another~variable")~alpha) ),
expression( atop(paste( ' Also\n variable') ,phantom("variable")~beta ) ),
expression( atop( paste( ' This\nvariable too') ,phantom(" ")~Gamma ) ),
expression( atop( paste( ' Verybigname\n variable,'),phantom(" Verybigname")~C[zeta] ) ),
expression( paste( ' Verybigname\nvariable,',C[zeta],"moretext\n",C[delta] ) ) ),
xpd=TRUE ,adj=1)

enter image description here

关于轴标签与表达式的 R 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35781950/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com