Seurat,干扰ggplot2/plotly输出
我正在Rstudio中编写一个R脚本,查看单个单元格数据并生成各种图形。我使用的软件包是ggplot2。当未加载Seurat库时,它会生成如下良好的图形输出: 然后,当Seurat库被导入时,图形将恢复为这种丑陋: 以下是Seurat加入后带来的进口清单:Seurat,干扰ggplot2/plotly输出,r,ggplot2,package,seurat,R,Ggplot2,Package,Seurat,我正在Rstudio中编写一个R脚本,查看单个单元格数据并生成各种图形。我使用的软件包是ggplot2。当未加载Seurat库时,它会生成如下良好的图形输出: 然后,当Seurat库被导入时,图形将恢复为这种丑陋: 以下是Seurat加入后带来的进口清单: Imports: methods, ROCR, stringr, mixtools, lars, fastICA, tsne, Rtsne, fpc, ape, VGAM, pbapply, igraph, FNN, care
Imports: methods, ROCR, stringr, mixtools, lars, fastICA, tsne, Rtsne,
fpc, ape, VGAM, pbapply, igraph, FNN, caret, plyr, dplyr,
RColorBrewer, MASS, Matrix, irlba, reshape2, gridExtra, gplots,
gdata, Rcpp, RcppEigen, RcppProgress, tclust, ranger
关于如何在不改变图形输出的情况下显示这两个库,您有什么想法吗
尝试过的解决方案:
- 尝试了“detach”(“package:Seurat”,unload=TRUE)//在关闭和重新加载RStudio时未还原绘图,并且不允许上游代码块提供ggplot2正常绘图李>
- 一条评论要求我发布我的修复方案作为答案,所以我做了一些挖掘。当调用
后发生意外行为时,这是因为该包有一个名为库(包)
或.onLoad
的函数。它们在加载或附加包时自动运行,通常用于设置选项、打印有用的消息等。最佳做法是,您应该使用一个补充函数,.onAttach
撤消任何操作。见: 有时,包装确实需要副作用。这是最常见的,如果 您的包与外部系统通信-您可能需要执行一些操作 软件包加载时的初始设置。。。如果使用.onLoad(), 考虑使用.ununLoad()来清除任何副作用。通过 约定、.onLoad()和好友通常保存在名为 zzz.R 因此,我在Github repo中查找包.onUnload
,没有看到任何与Seurat
相关的选项()。接下来是检查包的ggplot2
,它向我显示了说明
使用的加载包。这是一个很长的列表,但我发现了一个有点常见的自定义图形包,Seurat
。如果你接着去回购():cowplot
.onAttach看起来Seurat必须更改默认的主题设置。试试你的绘图代码
,看看这是否会将其恢复到Seurat之前的设置。似乎有效,非常感谢@Brian@Brian请作为答案发布。@zx8754我做了,希望这是一个比我的简短评论更有趣的答案。+theme_gray()
.onAttach <- function(libname, pkgname) { # switch the default theme to theme_cowplot # ggplot2::theme_set(theme_cowplot()) packageStartupMessage("\n********************************************************") packageStartupMessage("Note: As of version 1.0.0, cowplot does not change the") packageStartupMessage(" default ggplot2 theme anymore. To recover the previous") packageStartupMessage(" behavior, execute:\n theme_set(theme_cowplot())") packageStartupMessage("********************************************************\n") }