在 boxplot r 中选择 x 轴标签的频率

Choose frequency of x axis labels in boxplot r

我正在尝试制作一个相当大的数据库的箱线图来说明一年中每天的温度跨度(天气变化):

boxplot(Datasubset$Temp~Datasubset$Day,las=2,data=Datasubset,main="Weather Variability",xlab=names(Datasubset)[1],ylab=names(Datasubset)[3])

Datasubset 数据框如下所示:

Day Hour Temp
1/1/2015 1 3
2/1/2015 2 4
[...] [...] [...]
31/12/2015 8760 2

但是,我的 x 轴显示的值太多,这意味着它们重叠并且变得不可读。是否可以调节 x 轴标签的频率?例如,每 10 天或 20 天只显示一个标签?

此外,我的 xlab 和 ylab 命令似乎有点人为。是否可以更自然地引用数据框中列的名称?

这些可能很简单,但我似乎无法在 ?boxplot 中找到答案。

提前谢谢你。

您可以通过抑制 x 轴然后创建您自己的自定义轴来完成此操作。例如,

# Create example data similar to what you described:
Datasubset <- data.frame(Day=as.Date(16436:16800, origin='1970-01-01'),
                         Temp=sample(1:10, 365, replace=TRUE))
# Make the boxplot, without x-axis ticks by specifying xaxt='n':
boxplot(Temp ~ Day, data=Datasubset, las=2, main="Weather Variability",
        xlab='Day', ylab='Temp', xaxt='n')
# Make a vector of values to draw ticks at:
ticks <- seq(from=1, to=365, by=90)
# And draw the axis:
axis(1, las=1, at=ticks, labels=Datasubset$Day[ticks])

创建以下图:

有关更多信息,请参阅 par(特别是 xaxt 选项)和 axis 的帮助页面,方法是执行 help('par')help('axis')