2
我试图用10^n的值在每个第三个刻度处标记一个轴,格式化为上标。我正在使用grid
图形。我在做一些粗心大意的事情。这里有一个MWE(或我看到有一些运动,称之为reprex):替代矢量的Plotmath表达式
library("grid")
grid.newpage()
axisVP <- viewport(width = unit(6, "inches"), height = unit(0.01, "inches"))
pushViewport(axisVP)
labs <- c(1, "", "", expression(10^{-3}), "", "", expression(10^{-6}), "", "",
expression(10^{-9}), "", "", expression(10^{-12}))
grid.xaxis(at = seq(0, 1, length.out = 15)[-c(1,15)], label = labs)
不过,这仅与标签1.第一跳在str(labs)
看它是与长度13的表达如预期。表达式被grid.xaxis
接受。所以我不太确定为什么只显示第一个值。我已经在SO上探讨了相关的问题,但大多数似乎都将单个表达式作为轴标签或标题处理,而不是一系列表达式。大多数涉及轴标签的问题都试图使用专门的功能标记每个刻度。
谢谢!这里有一些魔法,我必须学习'parse'和'text'。我也非常感谢你们提供的替代(并且在概念上更为优越)的方式来传达序列。而通常更精简的代码。 –
不客气!要了解'parse()'在这种情况下做了什么,请参阅[here](https://cran.r-project.org/doc/manuals/r-release/R-lang.html#Internal-representation)和R语言定义中的[here](https://cran.r-project.org/doc/manuals/r-release/R-lang.html#Expression-objects)。 (事实证明,这是极少数情况下,你应该使用'parse()'来构造R语言对象。为了更好的选择,请参阅[计算语言]部分(https:/ /cran.r-project.org/doc/manuals/r-release/R-lang.html#Computing-on-the-language)。) –
(可能值得注意的是,如果你想让你的一些表达式不要打印任何东西,你需要将它们设置为'phantom(。)'。) –