R ggplot似乎以不同的方式绘制日期对象

R ggplot似乎以不同的方式绘制日期对象,r,ggplot2,R,Ggplot2,嗨,我有如下数据。我试图在时间序列的顶部绘制离散数据 df1 <- structure(list(sample_date = structure(c(1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1

嗨,我有如下数据。我试图在时间序列的顶部绘制离散数据

df1 <- structure(list(sample_date = structure(c(1418233320, 1418233320, 
1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 
1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 1418233320, 
1418233320, 1418233320), tzone = "", class = c("POSIXct", "POSIXt"
)), start_depth = c(0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 
9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5), chemical_name = c("Salinity (field)", 
"Salinity (field)", "Salinity (field)", "Salinity (field)", "Salinity (field)", 
"Salinity (field)", "Salinity (field)", "Salinity (field)", "Salinity (field)", 
"Salinity (field)", "Salinity (field)", "Salinity (field)", "Salinity (field)", 
"Salinity (field)", "Salinity (field)", "Salinity (field)"), 
    result_value = c(2.25, 2.16, 2.26, 3.41, 14.96, 19.17, 21.66, 
    22.18, 22.96, 23.16, 23.32, 23.54, 23.6, 23.66, 23.67, 23.67
    )), .Names = c("sample_date", "start_depth", "chemical_name", 
"result_value"), class = "data.frame", row.names = c(NA, -16L
))

df2 <- structure(list(datetime = structure(c(1418198455, 1418199355, 
1418200255, 1418201155, 1418202054, 1418202955, 1418203854, 1418204754, 
1418205655, 1418206555, 1418207454, 1418208354, 1418209255, 1418210155, 
1418211054, 1418211954, 1418212854, 1418213754, 1418214654, 1418215554, 
1418216455, 1418217355, 1418218254, 1418219154, 1418220054, 1418220954, 
1418221854, 1418222754, 1418223655, 1418224554, 1418225455, 1418226355, 
1418227255, 1418228155, 1418229054, 1418229954, 1418230854), tzone = "UTC", class = c("POSIXct", 
"POSIXt")), Depth = c(1.15, 1.23, 1.29, 1.32, 1.33, 1.39, 1.47, 
1.5, 1.49, 1.54, 1.6, 1.61, 1.67, 1.76, 1.78, 1.71, 1.68, 1.74, 
1.76, 1.62, 1.46, 1.41, 1.39, 1.32, 1.24, 1.18, 1.13, 1.07, 0.99, 
0.91, 0.86, 0.83, 0.75, 0.66, 0.58, 0.5, 0.44), Sal1 = c(5.97000000000001, 
9.61000000000001, 12.08, 12.81, 12.31, 12.74, 14.27, 13.42, 9.09000000000001, 
13.24, 12.11, 13.58, 12.89, 13.85, 14.56, 14.06, 13.56, 13.27, 
13.69, 14.81, 14.02, 12.49, 11.79, 12.31, 11.88, 10.7, 11.5, 
10.2, 9.77000000000001, 7.43000000000001, 6.81000000000001, 5.94000000000001, 
5.36000000000001, 3.75000000000001, 1.78000000000001, 1.36000000000001, 
1.27000000000001)), class = "data.frame", row.names = c(NA, -37L
), .Names = c("datetime", "Depth", "Sal1"))
还使用了以下代码,但输出类似:

ggplot(df2) + geom_line(aes(datetime, Sal1)) + 
  geom_point(aes(sample_date, result_value), data = df1)
输出如下所示:

各点似乎排列不正确

然而,当在excel上绘制时,数据似乎排列正确。详情如下:

根据joran的评论 我更改了POSIXct对象的属性,使它们都是GMT,但仍然没有对齐。我做错什么了吗

attr(df2$datetime, "tzone") <- "GMT"
attr(df1$sample_date, "tzone") <- "GMT"

ggplot(df2) + geom_line(aes(datetime, Sal1)) + 
  geom_point(aes(sample_date, result_value), data = df1)

两个POSIXct列有不同的时区。哦,我不知道它们有不同的时区。但是我更改了属性并尝试运行代码。仍然得到同样的结果。我不知道为什么。attrdf2$datetime,tzone Ok现在意识到,当更改为GMT时,日期实际上发生了更改。谢谢乔兰。是否可以保持日期-时间相同且仅更改属性,即保持相同的时间和相同的时区,因为当我仅更改时区时,数据将混乱。
attr(df2$datetime, "tzone") <- "GMT"
attr(df1$sample_date, "tzone") <- "GMT"

ggplot(df2) + geom_line(aes(datetime, Sal1)) + 
  geom_point(aes(sample_date, result_value), data = df1)