你最近画图是不是频繁地遇到各种报错?包括但不限于以下内容:
好基友也发了一个报错来:
重大更新内容
https://github.com/tidyverse/ggplot2/blob/main/NEWS.md
更新了哪些内容呢?
ggplot2 4.0.0 Breaking changes
-
「ggplot2的S3部分已被S7组件替换(#6352)。」
-
「(重大变更)」geom_violin(quantiles)现在基于数据的实际分位数,而不是基于计算出的密度推断的分位数。取代draw_quantiles的分位数参数现在属于stat_ydensity(),而不是geom_violin()(@teunbrand,#4120)。
-
「(重大变更)」可以在主题中一次性设置所有几何对象的默认值。(@teunbrand,基于@dpseidel的开创性工作,#2239)
-
新增了一个theme(geom)参数用于跟踪这些默认值。 -
可以使用element_geom()函数来填充该参数。 -
from_theme()函数允许在aes()函数内部访问主题默认字段。 -
在描述文件中「移动了以下包」。如果您的包依赖ggplot2来安装这些依赖项,您可能需要将它们列在您自己的DESCRIPTION文件中(#5986)。
-
将mgcv从Imports移动到Suggests -
将tibble从Imports移动到Suggests -
移除了glue依赖 -
默认标签现在是在build_ggplot()(以前是ggplot_build())中派生的,而不是在update_ggplot()(以前是ggplot_add.Layer())的图层方法中。这可能会影响访问plot$labels属性的代码(@teunbrand,#5894)。
-
在分箱统计中,现在默认边界的选择更好地遵循nbin参数。这可能会影响使用默认分箱的图表(@teunbrand,#5882,#5036)。
Lifecycle changes
-
「在ggplot2 3.0.0之前的版本中,已弃用的函数和参数现在会抛出错误而不是警告。」
-
「在ggplot2 3.4.0之前的版本中,被软弃用的函数和参数现在会抛出警告。」
-
annotation_borders()取代了现「已弃用」的borders()(@teunbrand,#6392)

-
在geom_bar()/geom_col()中「关闭了」将尺寸回退到线宽转换的功能(#4848)。
-
在geom_boxplot()、geom_crossbar()和geom_pointrange()中,fatten参数「已被弃用」(@teunbrand,#4881)。
-
「以下方法已被弃用」:fortify.lm()、fortify.glht()、fortify.confint.glht()、fortify.summary.glht()和fortify.cld()。建议使用broom::augment()和broom::tidy()来替代(@teunbrand,#3816)。
-
geom_errorbarh()「已被弃用」,建议使用geom_errorbar(orientation = “y”)来替代(@teunbrand,#5961)。
-
为了保持一致性并实现更好的自动补全功能,特殊的getter和setter函数「已重命名」为带有get_*和set_*前缀的函数。旧的名称仍然可用,以确保向后兼容性(@teunbrand,#5568)。
-
facet_wrap()为dir参数「新增了」选项,以便更好地控制面板方向。这些新选项取代了现已弃用的as.table参数的相关功能。在内部,dir = "h"或dir = "v"已被弃用(@teunbrand,#5212)。 -
coord_trans()「已被重命名」为coord_transform()(@nmercadeb,#5825)。
更多更新细节可以看:https://github.com/tidyverse/ggplot2/blob/main/NEWS.md
让子弹先飞一会
这种重大更新的影响应该还挺大的,可以先等一段时间。各位可以先还是保持ggplot2 3.5.2的版本,方法如下:
# 检查包的版本
packageVersion("ggplot2")
# 安装3.5.2版本
remotes::install_version("ggplot2", version = "3.5.2")
# 安装后需要重启Rstudio
当然,如果你没有遇到任何报错,就不用更改任何东西!