我正在尝试制作一个相当大的数据库的箱线图,以说明一年中每天的温度范围(天气变化):
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中找到答案。
提前谢谢你。
答案 0 :(得分:1)
您可以通过抑制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')
。