1

在过去的一天里,我一直在尝试阅读本教程(https://bedapub.github.io/besca/tutorials/scRNAseq_tutorial.html),并在运行此部分后不断出错:

bc.pl.kp_genes(adata, min_genes=min_genes, ax = ax1)

错误如下:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/miniconda3/lib/python3.9/site-packages/besca/pl/_filter_threshold_plots.py", line 57, in kp_genes
    ax.set_yscale("log", basey=10)
  File "/opt/miniconda3/lib/python3.9/site-packages/matplotlib/axes/_base.py", line 4108, in set_yscale
    ax.yaxis._set_scale(value, **kwargs)
  File "/opt/miniconda3/lib/python3.9/site-packages/matplotlib/axis.py", line 761, in _set_scale
    self._scale = mscale.scale_factory(value, self, **kwargs)
  File "/opt/miniconda3/lib/python3.9/site-packages/matplotlib/scale.py", line 597, in scale_factory
    return scale_cls(axis, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'basey'

有人有什么想法吗?我已经卸载并安装了 matplotlib 以确保它已更新,但这似乎也没有做任何事情。

将不胜感激任何帮助!提前谢谢你,我是初学者!

4

2 回答 2

1

似乎ax.set_yscale("log", basey=10)不承认关键字参数basey。如果您要安装旧版本,则此关键字在最新的 matplotlib 版本中已被替换,它应该可以工作:

pip install matplotlib==3.3.4

那么为什么会发生这种情况呢?您正在使用的软件包没有固定特定的依赖项,因此它会安装最新版本的依赖项。如果对更新版本的包有任何 API 更改,则代码会中断 - 确定项目的依赖版本是一种很好的做法。

于 2022-02-21T23:02:18.483 回答
0

我在 Github 和 SO 中查找了具有类似问题(“错误”关键字调用init)的帖子,看来您可能需要更新您的 matplotlib:

sudo pip install --upgrade matplotlib # for Linux
sudo pip install matplotlib --upgrade # for Windows
于 2022-02-21T23:05:29.940 回答