条形图的x轴作为自定义时间间隔

时间:2018-10-20 09:16:30

标签: r plot

我有这样的数据:

Day Hour Minute   averagespeed   
1    0    14       55
1    0    29       65
1    0    44       70  
1    0    59       55 
1    1    14       32
1    1    29       50
1    1    44       96
1    1    59       54
1    2    14       64
1    2    29       70

我想将此数据绘制为条形图或直方图,但x轴以小时为单位,范围是0到23,如下所示:分为15分钟间隔的4个间隔:

0 14 29 44 59 1 14 29 44 59 2 14 29 44 59 ..............23

针对averagespeed的y轴。

此数据为期30天,根据上面显示的列,我不知道如何使x轴像这样。

1 个答案:

答案 0 :(得分:0)

您只需要定义自己的标签和自定义x轴即可。另一个困难是,默认情况下,该轴的标签与barplot不能正确对齐(而与常规plot对齐)。

因此,您必须使用以下解决方法,将条形图另存为对象,然后强制x标签的位置:

mylabels <- paste0(df$Hour, "h", df$Minute,"min")
# labels not aligned ------------------------------------------------------
#barplot(df$averagespeed, xaxt = "n", xlab="Time")
#axis(1, at=1:length(df$averagespeed), labels=mylabels)
# labels are aligned ------------------------------------------------------
m<-barplot(df$averagespeed, xaxt = "n", xlab="Time")
m
axis(1, at=m,labels=mylabels)

enter image description here x轴的创建在此处进行了说明:https://stackoverflow.com/a/5182416/5224236

此处的条形图变通办法:https://stackoverflow.com/a/15332146/5224236