R 几何图形不出现在ggplot上

R 几何图形不出现在ggplot上,r,ggplot2,dplyr,tidyverse,as.date,R,Ggplot2,Dplyr,Tidyverse,As.date,我遇到了一个问题,geom_smooth无法在我的ggplot上工作。基于之前的文章,我发现因为我的日期变量是字符向量,所以geom_平滑不起作用。我试图将日期从类字符转换为类日期,但使用as.date会导致日期变量的类未知 以下是我尝试修复类类型的代码: allmovies <- allmovies %>% clean_names() %>% select(movie, total_box_office, theatrical_release_release_da

我遇到了一个问题,geom_smooth无法在我的ggplot上工作。基于之前的文章,我发现因为我的日期变量是字符向量,所以geom_平滑不起作用。我试图将日期从类字符转换为类日期,但使用as.date会导致日期变量的类未知

以下是我尝试修复类类型的代码:

allmovies <- allmovies %>%
   clean_names() %>%
   select(movie, total_box_office, theatrical_release_release_date, 
     running_time, mpaa, metacritic, sentiment) %>%
   mutate(theatrical_release_release_date = 
   as.character(theatrical_release_release_date)) %>%
   mutate(theatrical_release_release_date = as.Date(theatrical_release_release_date, format = "%Y-%m-%d"))
最后,这里是我的date列数据示例:

dput(head(allmovies$theatrical_release_release_date))
c("2013-08-23", "2013-03-22", "2012-09-14", "2012-03-16", "2012-02-17", 
"2011-10-14")
下面是整个数据的一个小样本:

structure(list(movie = c("The Frozen Ground", "The Croods", "Stolen", "Seeking Justice", "Ghost Rider: Spirit of Vengeance", "Trespass" ), total_box_office = c(5617460, 573068425, 17967746, 411746, 149217355, 786532), theatrical_release_release_date = structure(c(15940, 15786, 15597, 15415, 15387, 15261), class = "Date"), running_time = c(105, 98, 96, 104, 95, 90), mpaa = c("R", "PG", "R", "R", "PG-13", "R"), metacritic = c(37, 55, 43, 38, 34, 37), sentiment = c(NA, 0.1363636, NA, NA, NA, NA)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"))

尝试lubridate软件包:

install.packages("lubridate")
library(lubridate)
然后使用ymd功能检查dym/ymd订单编制人的文档,dmy:


如果这不起作用,请使用dput提供您的数据样本,我将相应地编辑我的答案:。

嗨,Claire。提供有关您正在使用的R版本、您已加载的任何软件包和操作系统的一些信息可能会有所帮助。请提供您的数据示例,因为问题可能是由于您的日期列的某些特征造成的。我们确实没有足够的信息提供帮助。您共享的日期的小示例将转换为适合我的日期,并使用适当的类。可能还有很多其他原因导致情节没有如您所期望的那样工作,但是如果没有一个完整的工作示例,我们无法真正进行调查,该示例可以演示您看到的整个行为。我认为text=movie可能导致ggplot尝试为每部电影安装一个模型。尝试删除该选项。您可能只想在几何点图层中使用文本美学。当您将它们放在顶部ggplot调用中时,每个后续层都会继承所有这些美学映射。而且你不想让它们都在geom_平滑中。你好!我在这篇文章的编辑版本中提供了一个数据示例-不幸的是,尝试使用mutatetherical_release_release_date=ymdtheatrical_release_release_date=YMDT来润滑仍然会产生一个未知的类。好的,现在试试吧-我将它从dmy更改为ymd-似乎与您提供的dput一起工作。使用strallmovies查看日期列是字符、因子还是日期。现在应该是日期了:谢谢你,这成功了-你知道为什么我的geom_smooth没有出现在我的情节上吗?你能用dputheadallmovies来提供整个数据帧的样本,我来看看。您只需复制控制台输出:structurelistmovie=C冻土、Croods、被盗、寻求正义、幽灵骑士:复仇精神、侵入、总票房=c5617460、573068425、17967746、411746、149217355、786532、剧场发布日期=structurec15940、15786、15597、15415、15387、15261、class=date、,运行时间=c105,98,96,104,95,90,mpaa=cR,PG,R,R,PG-13,R,metacritic=c37,55,43,38,34,37,情绪=cNA,0.1363636,NA,NA,NA,NA,row.NAME=cNA,-6L,class=ctbl,df,tbl,data.frame
install.packages("lubridate")
library(lubridate)
allmovies <- allmovies %>%
   clean_names() %>%
   select(movie, total_box_office, theatrical_release_release_date, 
     running_time, mpaa, metacritic, sentiment) %>%
   mutate(theatrical_release_release_date = 
   as.character(theatrical_release_release_date)) %>%
   mutate(theatrical_release_release_date = ymd(theatrical_release_release_date))