首页 > 解决方案 > 如何在条形图中设置 x 轴从 30 开始

问题描述

我有从第 30 天开始的含水量数据,当 y = 0 时,我希望 x 轴从 30 开始。

我试过这个代码:

bp=barplot(height=ESR18R$Rainfall,names.arg=ESR18R$DAS,las=1,xaxt="n"
           ,ylim=c(0,80),col="grey",ylab="Daily rainfall (mm)")

axis(1, at = seq(30, 80, by = 10))

不幸的是,这段代码几乎在中间标记了 x 轴,而我希望它从 x 轴的开头开始。

标签: r

解决方案


您需要使用 的offset选项barplotoffeset决定了条形应该相对于 x 轴移动多少。为了正确显示条的高度,height需要减少相同数量的offset.

# Generate data
set.seed(12345)
ESR18R <- data.frame(Rainfall=30+runif(6)*40,
                     DAS=letters[1:6])
print(ESR18R)
#   Rainfall DAS
# 1 58.83616   a
# 2 65.03093   b
# 3 60.43929   c
# 4 65.44498   d
# 5 48.25924   e
# 6 36.65487   f

bp <- barplot(height=ESR18R$Rainfall-30, xaxt="n", yaxt="n",
              ylim=c(30,80), col="grey", ylab="Daily rainfall (mm)", 
              offset=30)
axis(1, at=bp, labels=ESR18R$DAS)
axis(2, at=seq(30, 80, by=10), las=1)

在此处输入图像描述


推荐阅读