几年来,我一直在使用带有 base 和 ggplot 的 R 和 RStudio。最近,似乎在生成某些图时,其他图会丢失/删除。
在 RStudio 中,我使用“绘图”窗格/选项卡和蓝色左右箭头来查看已创建的绘图。消失,我的意思是这里创建了一个图并且可见,但是如果我使用箭头,我就看不到它了。它在那里,现在不在那里了,它已经“消失”了。
使用“源”按钮运行下面的代码后,它会生成 3 个图,我只能看到 2 个图。如果我使用 Command-Return 单步执行代码,我会看到生成的 3 个图,但中间的图会丢失。
在做了更多测试之后,我看到这段代码是调用:
DataExplorer::plot_str(mtcars)
那就是问题所在。如果我评论该行并使用 DataExplorer 中的另一个图,例如:
DataExplorer::plot_intro(mtcars)
脚本完成后,所有绘图都可用。
我相信一切都在使用最新版本:
- mac 操作系统 - 11.5.2
- R - R 版本 4.1.1 (2021-08-10)
- RStudio - RStudio 2021.09.0+351
- R 库 - 刚刚更新了所有 r 库
这是一个简单的基本案例,似乎重现了这个问题。在下面的示例中,我使用了 DataExplorer 库,但在 Keras 中也发生了类似的事情。
代码
########################### Start Initialisation ########################################################################################
# Remove objects from environment
rm(list = ls())
# Clear the R studio console
cat("\014")
# Clear all plots in R studio
try(dev.off(dev.list()["RStudioGD"]),silent<-TRUE)
try(dev.off(),silent<-TRUE)
# Load packages, installing first if not already installed
if (!require(DataExplorer)) {
install.packages("DataExplorer")
library(DataExplorer)
}
##################################
# Use base plotting to plot iris, this works
base::plot(iris, main="iris 1")
# Use DataExplorer::plot_str() to plot mtcars, this works, but then disappears
data("mtcars")
# DataExplorer::plot_str(mtcars) # This causes the problem
DataExplorer::plot_intro(mtcars) # This works
# This plot appears, but seems to cause the one above "mtcars" to disappear
base::plot(iris, main="iris 2")
sessionInfo()
输出:
> # Clear all plots in R studio
> try(dev.off(dev.list()["RStudioGD"]),silent<-TRUE)
null device
1
> try(dev.off(),silent<-TRUE)
> # Load packages, installing first if not already installed
> if (!require(DataExplorer)) {
+ install.packages("DataExplorer")
+ library(DataExpl .... [TRUNCATED]
> ##################################
>
> # Use base plotting to plot iris, this works
> base::plot(iris, main="iris 1")
> # Use DataExplorer::plot_str() to plot mtcars, this works, but then disappears
> data("mtcars")
> DataExplorer::plot_str(mtcars)
> # This plot appears but seems to cause the one above "mtcars" to disappear
> base::plot(iris, main="iris 2")
> sessionInfo()
R version 4.1.1 (2021-08-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Big Sur 11.5.2
Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
locale:
[1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] DataExplorer_0.8.2
loaded via a namespace (and not attached):
[1] pillar_1.6.3 compiler_4.1.1 tools_4.1.1 digest_0.6.28 jsonlite_1.7.2 evaluate_0.14 lifecycle_1.0.1 tibble_3.1.4 gtable_0.3.0 pkgconfig_2.0.3
[11] rlang_0.4.11 igraph_1.2.6 DBI_1.1.1 yaml_2.2.1 parallel_4.1.1 xfun_0.26 fastmap_1.1.0 gridExtra_2.3 dplyr_1.0.7 knitr_1.36
[21] generics_0.1.0 vctrs_0.3.8 htmlwidgets_1.5.4 grid_4.1.1 tidyselect_1.1.1 glue_1.4.2 data.table_1.14.2 R6_2.5.1 fansi_0.5.0 rmarkdown_2.11
[31] ggplot2_3.3.5 purrr_0.3.4 magrittr_2.0.1 scales_1.1.1 ellipsis_0.3.2 htmltools_0.5.2 networkD3_0.4 assertthat_0.2.1 colorspace_2.0-2 utf8_1.2.2
[41] munsell_0.5.0 crayon_1.4.1
我认为问题可能是由于混合了不同的绘图库,但下面的代码绘制了 6 个绘图,3 个使用 base:plot() 和 3 个使用 ggplot2::ggplot() 工作并生成 6 个绘图,我可以在 RStudio 中导航使用“绘图”窗格/选项卡上的蓝色左右箭头按钮。
base::plot(mpg, main="mpg 1 - base")
ggplot2::ggplot(mpg, aes(displ, hwy, colour = class)) +
geom_point() +
ggtitle("mpg 1 - ggplot2")
base::plot(ToothGrowth, main="ToothGrowth 2 - base")
ggplot2::ggplot(ToothGrowth, aes(x=supp, y=len, fill=dose))+
geom_boxplot() +
ggtitle("ToothGrowth 2 - ggplot2")
base::plot(iris, main="iris 3 - base")
ggplot2::ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, fill=Species))+
geom_boxplot() +
ggtitle("iris 3 - ggplot2")
RStudio 是:
RStudio 2021.09.0+351 "Ghost Orchid" Release (077589bcad3467ae79f318afe8641a1899a51606, 2021-09-20) for macOS
Mozilla/5.0 (Macintosh; Intel Mac OS X 11_5_2) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.12.10 Chrome/69.0.3497.128 Safari/537.36
Mac 操作系统版本:
(base) % uname -a
Darwin xxxx.lan 20.6.0 Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:31 PDT 2021; root:xnu-7195.141.2~5/RELEASE_X86_64 x86_64
(base) % sw_vers
ProductName: macOS
ProductVersion: 11.5.2
BuildVersion: 20G95