Линейный график в R не показывает линию, но изменения в каждой точке

Я пытаюсь построить линейный график для температурных временных рядов. Вместо точной линии он показывает изменения в каждой точке.

Я написал этот код для этого графика

temp<-read.csv("E:/Salford Work/Data Mining/Data/Tensor houses/8 John boste court/temReadings (5).csv");
rdate <- as.Date(temp$Date.Time, "%d/%m/%Y %H:%M");
plot(temp$Reading~rdate, type="l", col="blue", axes=F);
axis(1,rdate,format(rdate,"%d-%m-%y"));
read<-temp[,4];
axis(2,read);

Может кто-нибудь, пожалуйста, помогите мне нарисовать простую линию.

1 ответ

Решение

Обычно это происходит из-за категориальной переменной x-оси. Я не уверен, что это так, потому что вы, кажется, обратились в as.Date, Тем не менее, я бы избежал формулы (~) нотация, когда не вызывается информационный фрейм в функции построения графика:

plot(rdate, temp$Reading, type="l", col="blue", axes=F)

В любом случае, убедитесь, что class(rdate) возвращается "Date",

Редактировать:

Проблема в том, что часы, минуты и секунды удаляются из ваших данных при использовании as.Dateи большинство ваших дат в один и тот же день - таким образом вы теряете разрешение. Вместо этого вы должны использовать формат "POSIXlt" или "POSIXct" и использовать strptimeфункция для преобразования:

temp <- structure(list(Sensor.ID = c(1L, 1L, 1L, 1L, 7L, 1L, 7L, 1L, 
7L, 1L), Building.ID = c(155L, 155L, 155L, 155L, 155L, 155L, 
155L, 155L, 155L, 155L), Date.Time = structure(1:10, .Label = c("25/09/2014 16:28:58", 
"25/09/2014 16:29:58", "25/09/2014 16:30:58", "25/09/2014 16:31:58", 
"25/09/2014 16:32:11", "25/09/2014 16:32:58", "25/09/2014 16:33:11", 
"25/09/2014 16:33:58", "25/09/2014 16:34:11", "25/09/2014 16:34:58"
), class = "factor"), Reading = c(23.77, 24.12, 24.18, 24.04, 
24.27, 23.88, 24.92, 23.65, 25.16, 23.41)), .Names = c("Sensor.ID", 
"Building.ID", "Date.Time", "Reading"), class = "data.frame", row.names = c(NA, 
10L))

rdate <- strptime(temp$Date.Time, "%d/%m/%Y %H:%M")
class(rdate)
plot(rdate, temp$Reading, type="l", col="blue")
axis(1,rdate,format(rdate,"%d-%m-%y"))

введите описание изображения здесь

Другие вопросы по тегам