scanpy子图显示问题

对于scanpy来说,虽然直接使用sc.tl.umap(),可以直接画一行的多列图,但是必须每一列的表现形式一样,这样有一点不美观,例如我有两列的图,第一列是celltype的分布图,第二类是对应的louvain聚类图,但是louvain聚类图我希望legend_loc=“on data”,这个时候用仅仅i一行的sc.tl.umap()是无法实现的,解决办法如下

%load_ext rpy2.ipython
%%R -o counts -o meta

suppressMessages(library(splatter))

params <- newSplatParams()

params <- setParam(params, "nGenes", 5000)
params <- setParam(params, "batchCells", c(500,500,500))
params <- setParam(params, "batch.facLoc", 0.5)
params <- setParam(params, "batch.facScale", 0.5)
params <- setParam(params, "group.prob", c(1/3,1/3,1/3))

sim <- splatSimulate(params, method="groups", verbose=FALSE)

counts = data.frame(counts(sim))
meta = data.frame(colData(sim))
import anndata
import matplotlib.pyplot as plt
import scanpy as sc
adata = anndata.AnnData(X=counts.values.T, obs=meta)
sc.pp.normalize_per_cell(adata,counts_per_cell_after=10000)
sc.pp.log1p(adata)
sc.tl.pca(adata,svd_solver='arpack')

sc.pp.neighbors(adata, n_neighbors=9)
sc.tl.umap(adata)
sc.tl.tsne(adata)
sc.tl.louvain(adata)
fig, axs = plt.subplots(4, 2, figsize=(20,16),constrained_layout=True)
sc.pl.tsne(adata, color="Group", title="Group tsne", ax=axs[0,0], show=False)
sc.pl.tsne(adata, color="Batch", title="Batch tsne", ax=axs[0,1], show=False)
sc.pl.umap(adata, color="Group", title="Group umap", ax=axs[1,0], show=False)
sc.pl.umap(adata, color="Batch", title="Batch umap", ax=axs[1,1], show=False)
sc.pl.umap(adata, color="louvain", title="Group umap", ax=axs[2,0], show=False,legend_loc="on data")
sc.pl.umap(adata, color="louvain", title="Batch umap", ax=axs[2,1], show=False,legend_loc="on data")
sc.pl.umap(adata, color="louvain", title="Group umap", ax=axs[3,0], show=False,legend_loc="on data")
sc.pl.tsne(adata, color="Group", title="Group tsne", ax=axs[3,1], show=False)

最终的结果如下
在这里插入图片描述最终保存文件的代码如下

fig.savefig("./scanpy子图.png")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值