首页 > 解决方案 > ggplot2 绘图无法识别上课日期

问题描述

我尝试了很多不同的日期格式并浏览了论坛,但没有任何帮助。

我的代码很简单。我正在从数据库中吸取模拟结果,然后尝试用 ggplot 绘制样本。不幸的是,结果图没有在 x 轴上显示正确的日期时间格式。这是我的示例代码:

df<-tryCatch(sqlQuery(myconn,sql),
     warning=function(w){print("FAIL! (warning)");return(NA)},
     error=function(e){print(paste("ERROR:",geterrmessage()));return(NA)})

数据框 df 由两列 FIX_DATE 和posixct格式以及num格式的 SALDO 组成。

现在我已经尝试了很多不同的日期格式转换,正如在不同的工作组中指出的那样,但没有任何效果。例如

dates<-as.Date(df$FIX_DATE)

或者

library(lubridate)
dates<-ymd(df$FIX_DATE)

日期转换后:

samples <- data.frame(cbind(dates,df$SALDO))
colnames(samples) <-c("Dates","Values")

和情节

 theme_set(theme_light())
ggplot(samples,aes(x=Dates, y=Values)) +
  geom_point(color = "navajowhite2",
             alpha = 0.5,
             shape = 1,
             stroke = 1) +
  #geom_smooth(color="red") +
  stat_summary(fun.y = "mean", geom = "line", size = 1, colour="indianred2") +
  labs(title = "Monte-Carlo Szenarien", subtitle = "Darstellungsgitter in Jahren") +
  labs(y = "Nominal-Cashflows", x="Zeit") +
  theme(legend.position="none",
        plot.background = element_blank(), 
        panel.grid.major = element_line(color = "snow3"), 
        panel.grid.minor = element_line(color = "snow2"), 
        panel.border = element_blank(), 
        axis.line.x = element_line(color = "black"),
        axis.line.y = element_line(color = "black")) +
  scale_y_continuous(name="Szenarien Nominal-Cashflows", limits=c(1E+06, 3E+06)) +
  scale_x_date(date_labels = "%Y-%m-%d")

如果我删除线

scale_x_date(date_labels = "%Y-%m-%d")

我得到了情节。正如您在图中看到的,x 轴只显示天数,而不是正确的日期格式。如果我添加 line scale_x_date(date_labels = "%Y-%m-%d") 我总是收到错误消息: 错误:无效输入:date_trans 仅适用于 Date 类的对象

有没有人有线索。

提前致谢

标签: rggplot2

解决方案


您的数据框samples似乎只有 2 个变量DatesValues,但在aes您指的是其他变量的部分。


推荐阅读