R - 绘图值与字符日期

时间:2017-09-12 08:50:12

标签: r date plot character

我想绘制(在单个图中)由变量" my.data $ V2"组成的两个数据框列。 (y轴)vs date" my.data $ V3" (x轴)是一个字符串。我尝试过使用基本情节和ggplot方法,但我无法使用它。

plot(my.data$V2,my.data$V3,xaxt="n",ylab="Volum")          #don't plot the x axis
axis.POSIXct(1, at=seq(my.data$V3[1], my.data$V3[2], by="month"), format="%b") #label the x axis by months


require(ggplot2)
theme_set(theme_bw()) # Change the theme to my preference
ggplot(aes(x = my.data$V3, y = my.data$V2), data = my.data) + geom_point()

Here您可以找到数据集。使用加载文件        负载(" data.Rdata&#34)

解决:使用

plot(strptime(my.data$V3,"%d/%m/%YT%H:%M:%S",tz="GMT"),my.data$V2, xlab="Time", ylab="Volum")

1 个答案:

答案 0 :(得分:1)

您的数据集只包含字符串。你需要先转换它们。

> str(my.data)
'data.frame':   17670 obs. of  3 variables:
 $ V1: chr  "236E01VE" "236E01VE" "236E01VE" "236E01VE" ...
 $ V2: chr  "2.571" "2.571" "2.571" "2.571" ...
 $ V3: chr  "13/06/2017T12:55:00" "13/06/2017T13:00:00" "13/06/2017T13:05:00" "13/06/2017T13:10:00" ...

my.data$V2 <- as.numeric(my.data$V2)
my.data$V3 <- as.POSIXct(my.data$V3, format = "%d/%m/%YT%H:%M:%S")

> str(my.data)
'data.frame':   17670 obs. of  3 variables:
 $ V1: chr  "236E01VE" "236E01VE" "236E01VE" "236E01VE" ...
 $ V2: chr  "2.571" "2.571" "2.571" "2.571" ...
 $ V3: POSIXct, format: "2017-06-13 12:55:00" "2017-06-13 13:00:00" "2017-06-13 13:05:00" "2017-06-13 13:10:00" ...

对于ggplot,您应该在$内引用名称(不带aes()运算符)的变量。有关此问题的详细解释,请参阅here

ggplot(aes(x = V3, y = V2), data = my.data) + 
  geom_point()

plot