水分数据上的数据点太多

时间:2017-09-23 11:22:40

标签: r ggplot2

当我使用geom line创建图表时,我会得到此图

enter image description here

这是我的代码

ggplot(Moisture_kurokawa, aes(x = Date))+ geom_line(aes(y = W5, colour = "W5"))+ geom_line(aes(y = W7, colour = "W7"))+ geom_line(aes(y = W9, colour = "W9"))+ geom_line(aes(y = W11, colour = "W11"))

有关如何使其平滑或查看所有数据点的任何帮助吗?

My data file link

2 个答案:

答案 0 :(得分:2)

你应该花一些时间阅读一些ggplot2教程,这样你就可以让它为你做一些工作,特别是如果你做了一些数据重新排列。

你还需要一个合适的日期+时间对象来获得你想要的分辨率。

library(tidyverse)

Moisture_kurokawa <- read_csv("~/Data/Moisture kurokawa.csv")

mutate(Moisture_kurokawa, 
       timestamp = lubridate::mdy_hms(sprintf("%s %s", Date, Time))) %>% 
  select(-Date, -Time) %>% 
  gather(W, value, -timestamp) -> moisture_long

moisture_long
## # A tibble: 17,645 x 3
##              timestamp     W value
##                 <dttm> <chr> <dbl>
##  1 2017-06-24 00:00:00    W5 0.333
##  2 2017-06-24 00:30:00    W5 0.333
##  3 2017-06-24 01:00:00    W5 0.334
##  4 2017-06-24 01:30:00    W5 0.334
##  5 2017-06-24 02:00:00    W5 0.334
##  6 2017-06-24 02:30:00    W5 0.334
##  7 2017-06-24 03:00:00    W5 0.335
##  8 2017-06-24 03:30:00    W5 0.335
##  9 2017-06-24 04:00:00    W5 0.335
## 10 2017-06-24 04:30:00    W5 0.335
## # ... with 17,635 more rows

ggplot(moisture_long, aes(timestamp, value, group=W, color=W)) +
  geom_line()

enter image description here

您的数据更好,甚至可以:

ggplot(moisture_long, aes(timestamp, value, group=W, color=W)) +
  geom_line() +
  facet_wrap(~W)

enter image description here

答案 1 :(得分:1)

Moisture_kurokawa <- read.table("Moisture kurokawa.csv", header=T, sep=",")

# Create a datetime object with as.POSIXct
Moisture_kurokawa$DateTime <- as.POSIXct(
    paste0(Moisture_kurokawa$Date, Moisture_kurokawa$Time), 
    format="%m/%d/%Y %H:%M")

library(ggplot2)    
ggplot(Moisture_kurokawa, aes(x = DateTime))+ 
  geom_line(aes(y = W5, colour = "W5"))+ 
  geom_line(aes(y = W7, colour = "W7"))+ 
  geom_line(aes(y = W9, colour = "W9"))+ 
  geom_line(aes(y = W11, colour = "W11"))

enter image description here