当我使用 pyenv 来使用任何 venv 时,msno.matrix() 显示错误

Rub*_*nda 4 python virtualenv pyenv jupyter

我多次尝试使用pyenv安装多个虚拟环境,但系统显示missingno library错误。这是 : msno.matrix(df)

`ValueError                                Traceback (most recent call last)
Cell In[17], line 1
----> 1 msno.matrix(df)

File c:\Users\sarud\.pyenv\venvs\ETLs\lib\site-packages\missingno\missingno.py:72, in matrix(df, filter, n, p, sort, figsize, width_ratios, color, fontsize, labels, sparkline, inline, freq, ax)
     70 # Remove extraneous default visual elements.
     71 ax0.set_aspect('auto')

---> 72 ax0.grid(b=False)
     73 ax0.xaxis.tick_top()
     74 ax0.xaxis.set_ticks_position('none')

File c:\Users\sarud\.pyenv\venvs\ETLs\lib\site-packages\matplotlib\axes\_base.py:3196, in _AxesBase.grid(self, visible, which, axis, **kwargs)
   3194 _api.check_in_list(['x', 'y', 'both'], axis=axis)
   3195 if axis in ['x', 'both']:
-> 3196     self.xaxis.grid(visible, which=which, **kwargs)
   3197 if axis in ['y', 'both']:
   3198     self.yaxis.grid(visible, which=which, **kwargs)

File c:\Users\sarud\.pyenv\venvs\ETLs\lib\site-packages\matplotlib\axis.py:1655, in Axis.grid(self, visible, which, **kwargs)
   1652 if which in ['major', 'both']:
   1653     gridkw['gridOn'] = (not self._major_tick_kw['gridOn']
   1654                         if visible is None else visible)
-> 1655     self.set_tick_params(which='major', **gridkw)
   1656 self.stale = True
...
   1073             % (key, allowed_keys))
   1074 kwtrans.update(kw_)
   1075 return kwtrans

ValueError: keyword grid_b is not recognized; valid keywords are ['size', 'width', 'color', 'tickdir', 'pad', 'labelsize', 'labelcolor', 'zorder', 'gridOn', 'tick1On', 'tick2On', 'label1On', 'label2On', 'length', 'direction', 'left', 'bottom', 'right', 'top', 'labelleft', 'labelbottom', 'labelright', 'labeltop', 'labelrotation', 'grid_agg_filter', 'grid_alpha', 'grid_animated', 'grid_antialiased', 'grid_clip_box', 'grid_clip_on', 'grid_clip_path', 'grid_color', 'grid_dash_capstyle', 'grid_dash_joinstyle', 'grid_dashes', 'grid_data', 'grid_drawstyle', 'grid_figure', 'grid_fillstyle', 'grid_gapcolor', 'grid_gid', 'grid_in_layout', 'grid_label', 'grid_linestyle', 'grid_linewidth', 'grid_marker', 'grid_markeredgecolor', 'grid_markeredgewidth', 'grid_markerfacecolor', 'grid_markerfacecoloralt', 'grid_markersize', 'grid_markevery', 'grid_mouseover', 'grid_path_effects', 'grid_picker', 'grid_pickradius', 'grid_rasterized', 'grid_sketch_params', 'grid_snap', 'grid_solid_capstyle', 'grid_solid_joinstyle', 'grid_transform', 'grid_url', 'grid_visible', 'grid_xdata', 'grid_ydata', 'grid_zorder', 'grid_aa', 'grid_c', 'grid_ds', 'grid_ls', 'grid_lw', 'grid_mec', 'grid_mew', 'grid_mfc', 'grid_mfcalt', 'grid_ms']`
Run Code Online (Sandbox Code Playgroud)

我不知道错误,但我使用 conda 安装了类似的 virtualenv 并没有显示该错误。

我使用 pyenv (3.11.2、3.7.6、3.9.13、3.9.5)安装了不同的 python 版本,但是当我安装missingno 时,每个版本都显示相同的错误。我在错误时显示图像,我使用 VS code 作为 IDE。一开始我以为是VS code版本的问题,但是使用conda安装库并没有出现错误。

小智 6

我有同样的问题。同意 Ziyuan 的观点,似乎 matplotlib 最近的更新将参数更改bvisible.

最新版本的missingno(0.5.2)通过pip更新了传递给matplotlib的参数名称,但anaconda只提供版本(0.4.2),因此存在问题。即使出现此错误,您仍然可以绘制图表,但列标签消失了。

解决办法:进入missingno.py,搜索grid(b=False)并更新为grid(visible=False). 应该出现3次。

完成此操作后,返回到您自己的代码,重新导入缺少的包,它应该可以工作。