Ось X в Барплоте в R

Я хочу задать вопрос о осях barplot:

сначала просмотрите мои данные.

SerNo   DOY Rain
1   350 0
2   351 0
3   352 0
4   353 0
5   354 0
6   355 0
7   356 0
8   357 0
9   358 0
10  359 0
11  360 0
12  361 0
13  362 0
14  363 0
15  364 0.7
16  365 2.7
17  1   0
18  2   0
19  3   0
20  4   2
21  5   0
22  6   0
23  7   0
24  8   0
25  9   0
26  10  0
27  11  0
28  12  0
29  13  0
30  14  0
31  15  0
32  16  0
33  17  1.8
34  18  0.8
35  19  10
36  20  0
37  21  0
38  22  0
39  23  0
40  24  0
41  25  0
42  26  0
43  27  0
44  28  0
45  29  0
46  30  6.5
47  31  0
48  32  0
49  33  0
50  34  0
51  35  0
52  36  5.8
53  37  0
54  38  0
55  39  0
56  40  0
57  41  0
58  42  0
59  43  0
60  44  0
61  45  0
62  46  2.9
63  47  0
64  48  0

DOY означает день года, 1 января, 1 января и 31 декабря - 365/366, Дождь - это общее количество осадков в тот день, потому что этот период времени в течение года, и я хочу нарисовать сюжет, который x - DOY, а ось Y - дождь, при использовании барплота я не могу совместить DOY с соответствующим количеством дождя вот мой код

rainbar<-read.table("I:/example.txt",header=T)
rainbar
barplot(rainbar$Rain,axes=F,ylim=c(0,15))

length(rainbar$SerNo)
seq(1,length(rainbar$SerNo),1)
axis(2,seq(0,15,3),c(0,3,6,9,12,15))
axis(1,seq(1,length(rainbar$SerNo),1),rainbar$DOY)

результат нравится почему данные не могут совпадать? даже я добавил колонку под названием SerNo, а ось X на основе SerNo по-прежнему не может соответствовать соответствующему дождю, в чем причина? как функция barplot определяет собственную ось X? большое спасибо

enter image description here

Ответ 1

Попробуйте это вместо:

mp <- barplot(rainbar$Rain,axes=F,ylim=c(0,15))
axis(1,at=mp,labels=rainbar$DOY)
axis(2,seq(0,15,3),c(0,3,6,9,12,15))

Прочитайте ?barplot, чтобы увидеть, что значение, возвращаемое вызовом функции, является вектором средних точек в системе координат графика.