【问题标题】:Seaborn KDE is not giving a graph [closed]Seaborn KDE 没有给出图表[关闭]
【发布时间】:2021-12-30 23:18:21
【问题描述】:

我想对一个数据集进行 KDE 估计,但它显示错误。

import pandas as pd
import seaborn as sns
df = pd.read_csv("node1.txt", header = None) 
sns.kdeplot(df[0]);

输出:

TypeError: 'list' object is not callable

nodes1.txt 包含 float64 类型的每个元素

我不知道出了什么问题。我在 youtube 上看到了一个视频,这与其中显示的完全一样,但是当我尝试在 Spyder 中执行此操作时出现错误。如果我使用 jupyter 笔记本,它只会继续运行并且不会给我任何图表。如果我不在代码的第 4 行中使用分号,则不会得到图表,我只会得到 <AxesSubplot:xlabel='0', ylabel='Density'> 作为输出。运行此代码一分钟后内核就死了。

请帮帮我

【问题讨论】:

  • 您可能正在运行旧的 seaborn 版本。你试过sns.kdeplot(x=df[0].values)吗?
  • 你也可以在电脑上升级seaborn:pip install seaborn --upgrade
  • @JohanC 是的,现在可以了,谢谢
  • @Pedro 是的,我现在就更新,谢谢!!

标签: python pandas seaborn


【解决方案1】:

每当您在此处发布问题时,您应该始终尝试包含一个 MRE(最小可重现示例),在您的情况下,从您的 "node1.txt" 重新创建一个数据框,就像我对 random 向量所做的那样。指定软件版本也很有帮助。这里是 Python 3.7.4、Spyder 3.3.6、Pandas 0.25.1 和 Seaborn 0.11.2。

import pandas as pd
import seaborn as sns
import random

a=[]
for i in range(269):
    a.append(random.uniform(-8, 8))

df = pd.DataFrame(a)

检查print(df)print(df[0])

print(df)
            0
0   -7.777958
1   -1.298064
2    2.326718
3   -6.880657
4    4.813914
..        ...
264 -3.309862
265  5.009295
266  4.010151
267  1.665604
268 -0.209954

[269 rows x 1 columns]

print(df[0])
0     -7.777958
1     -1.298064
2      2.326718
3     -6.880657
4      4.813914
  
264   -3.309862
265    5.009295
266    4.010151
267    1.665604
268   -0.209954
Name: 0, Length: 269, dtype: float64

现在,绘制 KDE:

In[1]: sns.kdeplot(df[0])
Out[1]: <AxesSubplot:xlabel='0', ylabel='Density'>

如果您没有使用此代码获得此输出,请尝试重新启动内核和/或打开一个新的 IPython 控制台并重试(首先使用此代码,因为它是可重现的)。如果您仍然无法获得此输出,请尝试更新/升级您的 seaborn 包:pip install seaborn --upgrade

【讨论】:

  • 我提供的4行代码就是我写的全部代码。您所做的是编写与我的代码相同的代码,除了您没有收到错误,您甚至可以得到一个图表作为输出。我收到一个类型错误,说列表不可调用。当我在 jupyter 上运行它时,我没有收到类型错误,但我也没有得到图表
  • 如果您尝试过我的代码但没有得到与我的输出相同的结果,请尝试重新启动内核和/或打开一个新的 IPython 控制台,然后再试一次,首先使用我的代码(可重现),如果成功了,那就用你的。
  • 我 PC 中的 numpy 有一些错误,我通过更新 conda 纠正了这些错误。 Jupyter 对我来说一直很麻烦。非常感谢!
【解决方案2】:

安装的 Numpy 库似乎有错误。一旦它被纠正,列表不可调用错误应该得到解决。 要重新引用该库,请通过在终端中运行以下代码来更新您的 Anaconda

conda update conda

Seaborn 也需要更新,因为您运行的是旧版本。

【讨论】:

    猜你喜欢
    • 2020-08-17
    • 1970-01-01
    • 2020-10-09
    • 2020-06-02
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 2022-09-30
    相关资源
    最近更新 更多