繁体   English   中英

如何在R中使用ggplot2绘制timeDate?

[英]how to plot timeDate using ggplot2 in R?

library(timeDate)
library(ggplot2)
library(ggrepel)

dataset1$TimeStamp <- timeDate(dataset1$TimeStamp, format = "%Y/%m/%d   %H:%M:%S", zone = "GMT", FinCenter = "GMT")

p1 <- ggplot(dataset1, aes(x = TimeStamp, y = y1))

p1 + 
geom_point() + 
geom_text_repel(aes(label = Label1), size = 3)

注意:执行上面的代码时,我会看到下一个:不知道如何自动为timeDate类型的对象选择比例。 默认为连续。 错误:geom_point需要以下美感:x

如何在ggplot中使用timeDate类?

ggplot可能不知道如何处理timeDate类。 您只需将TimeStamp@Data插槽中的值插入ggplot:

dataset1 <- data.frame(TimeStamp = sample(1:100,50,replace = T), 
                       y1=sample(1:50,50,replace=T),
                       Label1 = sample(LETTERS[1:5],50,replace=T)
                       )
dataset1$TimeStamp <- timeDate(dataset1$TimeStamp, 
                               format = "%Y/%m/%d %H:%M:%S", 
                               zone = "GMT", 
                               FinCenter = "GMT"
                               )
str(dataset1$TimeStamp)

# Formal class 'timeDate' [package "timeDate"] with 3 slots
# ..@ Data     : POSIXct[1:100], format: "1970-01-01 00:00:09" "1970-01-01 00:00:05" "1970-01-01 00:00:06" ...
# ..@ format   : chr "%Y-%m-%d %H:%M:%S"
# ..@ FinCenter: chr "GMT"

str(dataset1$TimeStamp@Data)

# Dates in POSIXct format are storred in @Data slot
# POSIXct[1:100], format: "1970-01-01 00:00:09" "1970-01-01 00:00:05" "1970-01-01 00:00:06" "1970-01-01 00:00:04" ...

ggplot(dataset1, aes(x = TimeStamp@Data, y = y1, colour = Label1)) +
  geom_point() + 
  geom_text_repel(aes(label = Label1, colour = Label1), size = 3) +
  theme_dark() +
  labs(x="Time Stamp", y = "Value") +
  scale_colour_discrete(guide = F)

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM