我正在尝试创建一个海生的 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
我在运行Jupyter Notebook时遇到了类似的问题。
我的解决方案涉及:
重新启动笔记本
重新运行导入
%matplotlib inline; import matplotlib.pyplot as plt
由于您没有发布完整的工作示例,因此有点猜测。
可能出错的是你g = g.map(plt.hist, "values")
的行,因为错误来自matplotlib的深处。你可以在这个SO问题中看到这一点,它的另一个函数pylab.sca(axes[i])
matplotlib之外,由于不在可用的模块中,是由matplotlib触发的。
可能您在(conda?(环境中安装/更新了某些内容(环境路径的更改?(,并且在下次重新启动后找到了它。
我也想知道你是怎么想出plt.hist
的......完全键入它应该类似于matplotlib.pyplot.hist
...但猜测...(等待更新的示例代码(。