R 在sciplot条形图中更改x轴标签与轴的距离

R 在sciplot条形图中更改x轴标签与轴的距离,r,graphics,R,Graphics,我正在使用sciplot中的bargraph.CI构建一个绘图。x轴表示一个分类变量,因此该变量的值是x轴上不同位置的名称。不幸的是,这些名称很长,因此在默认设置下,其中一些名称会消失。我通过在需要的地方注入“\n”将它们分成多行来解决这个问题。这基本上是可行的,但因为名称现在是多行的,它们看起来太接近x轴了。我需要把它们移远一点。怎么做 我知道我可以用mgp做这件事,但这也会影响y轴 我知道我可以在调用barplot.CI时将axisnames设置为FALSE,然后使用axis创建一个单独的x

我正在使用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
    )

axis
可以很好地使用caterory,但您应该设置正确的刻度值,并使用偏移平移的
pos
参数。这里我使用
xvals
条形图.CI的返回值来设置
记号

这里是一个可复制的示例:

library(sciplot)
# I am using some sciplot data 
dat <- ToothGrowth
### I create along labels
labels <- c('aaaaaaaaaa\naaaaaaaaaaa\nhhhhhhhhhhhhhhh',
          'bbbbbbbbbb\nbbbbbbbbbbb\nhhhhhhhhhhhhhh',
          'cccccccccc\nccccccccccc\ngdgdgdgdgd')
## I change factor labels
dat$dose <- factor(dat$dose,labels=labels)
ll <- bargraph.CI(x.factor = dose, response = len, data = dat,axisnames=FALSE) 
## set at to xvals
axis(side=1,at=ll$xvals,labels=labels,pos=-2,tick=FALSE)

库(sciplot)
#我正在使用一些sciplot数据

dat如果人们能在他们的系统上复制你的代码,你将有更好的机会得到(n)(好)答案。我们无法访问
D
,因此无法复制此代码。看看
dput()
。。。