Вам нужно будет установить group
, установив общее значение для тех точек, которые вы хотите подключить. Здесь вы можете установить первые 4 значения, чтобы сказать 1
, а последние 2 - 2
. И держите их в качестве факторов. То есть
df1$grp <- factor(rep(1:2, c(4,2)))
g <- ggplot(df1, aes(x=Date, y=Counts)) + geom_line(aes(group = grp)) +
geom_point()
Изменить: после загрузки вашего data.frame
вы можете использовать этот код для автоматического создания столбца grp
:
idx <- c(1, diff(df$Date))
i2 <- c(1,which(idx != 1), nrow(df)+1)
df1$grp <- rep(1:length(diff(i2)), diff(i2))
Примечание: Важно также добавить geom_point()
, потому что если discontinuous range
является записью LAST в файле data.frame, она не будет отображаться (поскольку для подключения линии не должно быть 2 точки). В этом случае geom_point()
построит график.
В качестве примера я создам данные с большим количеством пробелов:
# get a test data
set.seed(1234)
df <- data.frame(Date=seq(as.POSIXct("05:00", format="%H:%M"),
as.POSIXct("23:00", format="%H:%M"), by="hours"))
df$Counts <- sample(19)
df <- df[-c(4,7,17,18),]
# generate the groups automatically and plot
idx <- c(1, diff(df$Date))
i2 <- c(1,which(idx != 1), nrow(df)+1)
df$grp <- rep(1:length(diff(i2)), diff(i2))
g <- ggplot(df, aes(x=Date, y=Counts)) + geom_line(aes(group = grp)) +
geom_point()
g
[/g0]
Изменить: для ваших НОВЫХ данных (предполагается, что это df
),
df$t <- strptime(paste(df$Date, df$Time), format="%d/%m/%Y %H:%M:%S")
idx <- c(10, diff(df$t))
i2 <- c(1,which(idx != 10), nrow(df)+1)
df$grp <- rep(1:length(diff(i2)), diff(i2))
теперь отображается с aes(x=t, ...)
.