我正在做一个学校项目,现在已经尝试解决了一段时间,但是我找不到解决方案。
问题是,每当我运行此命令时,x轴就充满了太多变量。我找到了与此类似的帖子,但是该帖子正在使用普通变量而不是像我一样的日期时间变量(%Y /%m),当我尝试运行这样的代码时,女巫会产生问题:
"scale_x_discrete(breaks = seq(0, 100, by = 5))"
请记住,我有很多行,我不知道这是否会引起问题,但是:
和代码:
plottest1 <- function(St, na){
test1 <- ggplot(data = KunskiDepozit1, aes(x=Datum, y=St, group = 1)) +
geom_line() + labs(x = "Datum", y = na, title = paste("vizualization ", na)) + geom_point()
test1 <- test1 +
theme_update(plot.title = element_text(hjust = 0.5))
return(test1)
}
答案 0 :(得分:0)
由于您的x轴是日期,因此我将尝试使用实际的日期轴而不是离散轴。也许玩类似的东西:
scale_x_date(date_breaks = "2 weeks")
有关详细信息,请查看ggplot2标尺文档!
?ggplot2::scale_x_date()
答案 1 :(得分:0)
正如Geosopher和PoGibas所指出的那样,您需要确保ggplot理解Datum是日期。您可能需要考虑使用软件包lubridate
。
如果我斜视,我认为您的日期信息在YYYY-MM一栏中,因此,要实现此目的,您只需要类似以下内容:
date_df <- existing_df %>%
mutate(Datum = paste0(Datum, "-01")) %>%
mutate(Datum = lubridate::ymd(Datum))
我从R for Data Science (freely available online)的lubridate
的章节中提取了以下示例代码,该代码说明了如何使用函数{{1}将日期和时间元素拆分为不同的列时如何进行操作}。它还显示您可以直接绘制日期时间变量,并且ggplot将做正确的事。
lubridate::make_datetime