【问题标题】:ValueError: Axes instance argument was not found in a figure, Question with same name has no answerValueError: Axes instance argument was not found in a figure, Question with same name has no answer
【发布时间】:2020-03-31 15:52:37
【问题描述】:

我正在尝试创建一个 seaborn Facetgrid 来绘制我的 dataFrame 十项全能中所有列的正态分布。数据如下:

      P100m   Plj  Psp  Phj  P400m  P110h   Ppv  Pdt  Pjt  P1500
0       938  1061  773  859    896    911   880  732  757    752
1       839   975  870  749    887    878   880  823  863    741
2       814   866  841  887    921    939   819  778  884    691
3       872   898  789  878    848    879   790  790  861    804
4       892   913  742  803    816    869  1004  789  854    699
 ...   ...  ...  ...    ...    ...   ...  ...  ...    ...
7963    755   760  604  714    812    794   482  571  539    780
7964    830   845  524  767    786    783   601  573  562    535
7965    819   804  653  840    791    699   659  461  448    632
7966    804   720  539  758    830    782   731  487  425    729
7967    687   809  692  714    565    741   804  527  738    523

我对 python 比较陌生,我无法理解我的错误。我尝试格式化数据和创建网格是这样的:

import seaborn as sns
df_stacked = decathlon.stack().reset_index(1).rename({'level_1': 'column', 0: 'values'}, axis=1)
g = sns.FacetGrid(df_stacked, row = 'column')
g = g.map(plt.hist, "values")

但是我收到以下错误:

ValueError: Axes instance argument was not found in a figure

谁能解释这个错误的确切含义以及我将如何修复它?

编辑

df_stacked 看起来像这样:

     column  values
0     P100m     938
0       Plj    1061
0       Psp     773
0       Phj     859
0     P400m     896
 ...     ...
7967  P110h     741
7967    Ppv     804
7967    Pdt     527
7967    Pjt     738
7967  P1500     523

【问题讨论】:

  • 可以显示df_stacked的内容吗?
  • @DizietAsahi 我已将此添加到上面的问题中
  • @geds133 我在使用你的代码时没有收到这个错误,你能提供完整的堆栈跟踪吗?
  • GitHub 上有一个老问题,里面有同样的错误github.com/mwaskom/seaborn/issues/194#issue-33200421,建议可能是由于选择的后端。您能指定您使用的后端以及所有库的版本吗?
  • 您能否发布最初引发错误的完整代码(即工作示例)?目前无法运行您的示例并查看发生了什么。 (来自评论)。

标签: python seaborn


【解决方案1】:

我在运行 Jupyter Notebook 时遇到了类似的问题。

我的解决方案涉及:

  1. 重启笔记本

  2. 重新运行导入 %matplotlib inline; import matplotlib.pyplot as plt

【讨论】:

    【解决方案2】:

    由于您没有发布完整的工作示例,因此有点猜测。

    可能出问题的地方是 g = g.map(plt.hist, "values") 所在的行,因为错误来自 matplotlib 的深处。你可以在这个 SO question 中看到这个here,它在 matplotlib 之外的另一个函数 pylab.sca(axes[i]) 由于不在该模块中可用,由 matplotlib 触发。

    很可能您在(conda?)环境中安装/更新了某些内容(环境路径的更改?),并且在下次重新启动后发现它。

    我还想知道您是如何提出plt.hist ... 完全键入它应该类似于matplotlib.pyplot.hist ... 但猜测...(等待您更新的示例代码)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-07
      • 1970-01-01
      • 2022-08-04
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多