Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 为什么在ggplot2中运行相同的注释函数对其他人有效,但对我来说会抛出一个错误(美学长度)?_R_Ggplot2_Version_Annotate - Fatal编程技术网

R 为什么在ggplot2中运行相同的注释函数对其他人有效,但对我来说会抛出一个错误(美学长度)?

R 为什么在ggplot2中运行相同的注释函数对其他人有效,但对我来说会抛出一个错误(美学长度)?,r,ggplot2,version,annotate,R,Ggplot2,Version,Annotate,我使用最初有效的ggplot2创建了一个图形。在没有任何改变的情况下,它停止了对我的工作,抛出了一个错误:“美学必须是长度1或与数据(9):标签相同”。然而,我有同事在他们的系统上运行我的代码,它工作得非常好。这是什么原因造成的?我们都安装了几乎相同的版本或R、RStudio、ggplot2和tidyverse 在调用tidyverse库之前和之后,我都尝试过调用ggplot2库,以查看是否版本不匹配。我卸载了所有软件包并重新安装。我卸载了R并重新安装了R。它对我来说从来都不起作用,而且总是对他

我使用最初有效的ggplot2创建了一个图形。在没有任何改变的情况下,它停止了对我的工作,抛出了一个错误:“美学必须是长度1或与数据(9):标签相同”。然而,我有同事在他们的系统上运行我的代码,它工作得非常好。这是什么原因造成的?我们都安装了几乎相同的版本或R、RStudio、ggplot2和tidyverse

在调用tidyverse库之前和之后,我都尝试过调用ggplot2库,以查看是否版本不匹配。我卸载了所有软件包并重新安装。我卸载了R并重新安装了R。它对我来说从来都不起作用,而且总是对他们起作用

我有ggplot2版本3.2.0,他们有ggplot2版本3.1.1。该网站称,3.2.0版本“修复”了一个问题,该问题可能使3.1.1的同事能够运行代码,即使它不应该运行;这意味着我的代码中有不正确的地方,以前的3.1.1版本可能会意外运行。以下是3.2.0发行版中似乎相关的一行:

“在某些情况下,ggplot2现在会为以前生成打印输出的代码生成警告或错误。在所有这些情况下,以前的打印输出都是意外的,并且打印代码使用ggplot2 API的方式会导致未定义的行为。示例包括……跨多个方面的注释(#3305)…)

所以这要么是我的软件或软件包设置有问题,要么是我的代码错误。有什么想法吗

以下是我所称的所有库:

library(tidyverse)
library(lubridate)
library(readxl)
library(reshape2)
library(scales)
library(plotly)
library(extrafont)
这是我运行library(tidyverse)时控制台打印的内容:

这是我正在制作成图表的整个表格:

  Component_ProgramItem    task        ProjectedEndDate_6_30_18    date.type  task.date
1 Citywide Programs        Original    2019-12-31                  end        2012-08-30
2 Neighborhood Parks       Original    2016-01-27                  end        2013-03-31
3 Waterfront Parks         Original    2019-12-31                  end        2015-02-28
4 Neighborhood Parks       Updated     2016-01-27                  end        2016-01-27
5 Citywide Programs        Updated     2019-12-31                  end 2020-03-31
6 Waterfront Parks         Updated     2019-12-31                  end 2020-04-30
7 Citywide Programs        Original    2019-12-31                  start      2008-08-28
8 Neighborhood Parks       Original    2016-01-27                  start      2008-08-28
9 Waterfront Parks         Original    2019-12-31                  start        2008-08-28
10 Citywide Programs       Updated     2019-12-31                  start        2012-08-30
11 Neighborhood Parks      Updated     2016-01-27                  start        2013-03-31
12 Waterfront Parks        Updated     2019-12-31                  start        2015-02-28
#6 Create ggplot schedule
#order of "label=c("label name...", Label name 2...", ) is alphabetical
ggplot(csnp2008.sched.long, aes(x=task, y=task.date, colour=task)) + 
  geom_line(size=70, show.legend = FALSE) + 
  scale_color_manual(values = c("#fadd9d", "#ffc000")) +
  scale_fill_manual(values = c("#fadd9d", "#ffc000")) +
  labs(x=NULL, y=NULL) + 
  scale_y_date(breaks = "1 year", date_minor_breaks = "1 year", date_labels = "%b-%Y") +
  #guides(fill=guide_legend(title=NULL, reverse=TRUE)) +
  geom_hline(data = csnp2008.sched.long, aes(yintercept=ProjectedEndDate_6_30_18), 
             color = "#7f7f7f", size = 1, linetype = "dashed") +
  annotate("text", x="task", y=as.Date("2008-10-30"),
          label=c("Citywide Programs",
                   "Neighborhood Parks",
                  "Waterfront Parks"),
          size = 3.75, hjust = "left", family = "Segoe UI Semilight") +
  #facet_grid(Component~., switch = "y", labeller = labeller(Component = label_wrap_gen(10))) + 
  facet_grid(Component_ProgramItem~., switch = "y", scales = "free", space = "free") +
  theme_gantt() + theme(axis.text.x=element_text(angle=45, hjust=1, size = 9, 
                        family = "Segoe UI Semilight"),
                        axis.line.x = element_line(color= "#e7e5e6"),
                        axis.ticks.x = element_line (color = "#7f7f7f"),
                        axis.title=element_blank(),
                        axis.text.y = element_blank(),
                        strip.text = element_blank())+
  coord_flip() 
下面是我用来将其绘制成图形的代码:

  Component_ProgramItem    task        ProjectedEndDate_6_30_18    date.type  task.date
1 Citywide Programs        Original    2019-12-31                  end        2012-08-30
2 Neighborhood Parks       Original    2016-01-27                  end        2013-03-31
3 Waterfront Parks         Original    2019-12-31                  end        2015-02-28
4 Neighborhood Parks       Updated     2016-01-27                  end        2016-01-27
5 Citywide Programs        Updated     2019-12-31                  end 2020-03-31
6 Waterfront Parks         Updated     2019-12-31                  end 2020-04-30
7 Citywide Programs        Original    2019-12-31                  start      2008-08-28
8 Neighborhood Parks       Original    2016-01-27                  start      2008-08-28
9 Waterfront Parks         Original    2019-12-31                  start        2008-08-28
10 Citywide Programs       Updated     2019-12-31                  start        2012-08-30
11 Neighborhood Parks      Updated     2016-01-27                  start        2013-03-31
12 Waterfront Parks        Updated     2019-12-31                  start        2015-02-28
#6 Create ggplot schedule
#order of "label=c("label name...", Label name 2...", ) is alphabetical
ggplot(csnp2008.sched.long, aes(x=task, y=task.date, colour=task)) + 
  geom_line(size=70, show.legend = FALSE) + 
  scale_color_manual(values = c("#fadd9d", "#ffc000")) +
  scale_fill_manual(values = c("#fadd9d", "#ffc000")) +
  labs(x=NULL, y=NULL) + 
  scale_y_date(breaks = "1 year", date_minor_breaks = "1 year", date_labels = "%b-%Y") +
  #guides(fill=guide_legend(title=NULL, reverse=TRUE)) +
  geom_hline(data = csnp2008.sched.long, aes(yintercept=ProjectedEndDate_6_30_18), 
             color = "#7f7f7f", size = 1, linetype = "dashed") +
  annotate("text", x="task", y=as.Date("2008-10-30"),
          label=c("Citywide Programs",
                   "Neighborhood Parks",
                  "Waterfront Parks"),
          size = 3.75, hjust = "left", family = "Segoe UI Semilight") +
  #facet_grid(Component~., switch = "y", labeller = labeller(Component = label_wrap_gen(10))) + 
  facet_grid(Component_ProgramItem~., switch = "y", scales = "free", space = "free") +
  theme_gantt() + theme(axis.text.x=element_text(angle=45, hjust=1, size = 9, 
                        family = "Segoe UI Semilight"),
                        axis.line.x = element_line(color= "#e7e5e6"),
                        axis.ticks.x = element_line (color = "#7f7f7f"),
                        axis.title=element_blank(),
                        axis.text.y = element_blank(),
                        strip.text = element_blank())+
  coord_flip() 
它不会为我运行这段代码,在注释函数之后抛出错误:“美学必须是长度1或与数据(9):标签相同”。但是,它可以完美地为其他所有人运行,并为他们返回正确的图形,没有错误消息

这是软件问题吗?还是代码问题

另外,我不会附上最终图表的图像,因为我认为这并不相关。但如果你需要,我可以

p.p.S以下是重新创建的代码:


df2注释函数必须提供输入向量(x、y、label),这些向量必须与数据具有相同的长度(即9行)。我认为最好使用geom_文本,将注释放在数据框中

库(tidyverse)
图书馆(lubridate)
图书馆(readxl)
图书馆(E2)
图书馆(比例尺)
图书馆(绘本)
库(外部字体)

csnp2008.sched.long注释函数必须提供输入向量(x、y、label),这些向量必须与数据具有相同的长度(即9行)。我认为最好使用geom_文本,将注释放在数据框中

库(tidyverse)
图书馆(lubridate)
图书馆(readxl)
图书馆(E2)
图书馆(比例尺)
图书馆(绘本)
库(外部字体)

下一个问题的提示:将代码和数据缩进4个空格。保存所有这些
br
标记,我编辑它们:)示例数据和代码不匹配。数据中没有变量
task
,变量
task。日期
在代码中是小写。谢谢@neilfws!我不知道怎么做。情况有了很大改善。另外,我重新命名了数据中的列。。。我认为速记应该是用户友好的,因为代码不是问题所在(也许),但我现在明白了,这是令人困惑的。还有什么我可以改进的吗?@neilfws如果有帮助的话,我也会将数据变为真实的,尽管最后一列的对齐方式不太正确。也许,首先修复这个问题,
2012-02-31
?下一个问题的提示:将代码和数据缩进4个空格。保存所有这些
br
标记,我编辑它们:)示例数据和代码不匹配。数据中没有变量
task
,变量
task。日期
在代码中是小写。谢谢@neilfws!我不知道怎么做。情况有了很大改善。另外,我重新命名了数据中的列。。。我认为速记应该是用户友好的,因为代码不是问题所在(也许),但我现在明白了,这是令人困惑的。还有什么我可以改进的吗?@neilfws如果有帮助的话,我也会让数据真实化,尽管最后一列的对齐方式不太正确。也许,先修复这个,
2012-02-31
?非常感谢!这就解决了!非常感谢,非常感谢!这就解决了!非常非常感谢。