我正在使用来自 sciplot 的 bargraph.CI 构建一个绘图。x 轴表示一个分类变量,因此该变量的值是 x 轴上不同位置的名称。不幸的是,这些名称很长,所以在默认设置下,其中一些会消失。我通过在需要的地方注入“\n”将它们分成多行来解决这个问题。这基本上是可行的,但是因为现在名称是多行的,所以它们看起来太靠近 x 轴了。我需要把它们移到更远的地方。如何?
我知道我可以用 mgp 做到这一点,但这也会影响 y 轴。
我知道我可以在调用 barplot.CI 时设置axisnames=FALSE,然后使用axis 创建一个单独的x 轴。(事实上,我已经这样做了,但只是为了让 x 轴比默认情况下延伸得更远 - 请参阅下面的代码。)然后我可以给 x 轴自己的 mgp 参数,该参数不会影响y 轴。但据我所知,axis() 对于序数或连续变量设置得很好,似乎不适用于分类变量。经过一番摆弄,我无法将名字放在正确的位置(即在他们的对应栏下方)
最后,我尝试使用 Hmisc 中的 mgp.axis.labels 仅设置 x 轴 mgp,这正是我想要的,但据我所知,它对任何东西都没有影响。
想法?这是我的代码。
ylim = c(0.5,0.8)
yticks = seq(ylim[1],ylim[2],0.1)
ylab = paste(100*yticks,"%",sep="")
bargraph.CI(
response = D$accuracy,
ylab = "% Accuracy on Test",
ylim = ylim,
x.factor = D$training,
xlab = "Training Condition",
axes = FALSE
)
axis(
side = 1,
pos = ylim[1],
at = c(0,7),
tick = TRUE,
labels = FALSE
)
axis(
side = 2,
tick = TRUE,
at = yticks,
labels = ylab,
las = 1
)