如何为来自同一个熊猫数据框的所有不同列制作单独的 Seaborn kde 图?
Posted
技术标签:
【中文标题】如何为来自同一个熊猫数据框的所有不同列制作单独的 Seaborn kde 图?【英文标题】:How to make seperate Seaborn kdeplots for all different columns from the same pandas Dataframe? 【发布时间】:2016-01-11 20:10:28 【问题描述】:如何为 pandas 数据框的所有列制作两个单独的 Seaborn kdeplot:
具有六列(例如下面)的 pandas 数据框 (df
):
df.columns = ["A", "B", "C", "D", "E", "F"]
我尝试了以下代码,但没有成功。下面的代码有什么提示吗?
df = sns.load_dataset("df")
g = sns.FacetGrid(df)
g.map(s.skdeplot, "df.columns");
【问题讨论】:
将代码添加到您的示例中,从头开始生成数据框(例如,不读取任何文件) KDE 是(几乎)连续计算,“低于 0.5 的点数”是什么意思。您希望低于和高于阈值的 KDE 部分是不同的颜色吗? @PaulH。稍微改了一下问题。请看上面。希望你能帮忙。df = sns.load_dataset("df")
抛出错误。你能让你的例子从头开始重现吗?
***.com/questions/20109391/…
【参考方案1】:
你的问题在这里:
ax(i) = sns.kdeplot(dftouse[column], c = colorUp(dftouse[column]))
ax(i)
是一个函数调用。你正试图给它分配一些东西。这是不正确的。
我不熟悉 matplotlib,只熟悉 Python。也许你的意思是ax[i]
?如果 ax 是一个数组或一个字典,那么这可能是正确的。
【讨论】:
稍微改变了问题。请看上面。希望你能帮忙。 您在引号中加上df.columns
似乎很奇怪,但我还是不熟悉那个包..(另外,您完全改变了问题。如果我的评论有帮助,它可能有礼貌地给我一个赞成票或表扬我的回答,然后在不同的线程中提出不同的问题。毕竟我正在努力建立一些声誉。)【参考方案2】:
我认为你需要使用pd.melt
:
df = pd.DataFrame('id1' :np.random.randint(3,size=1000),
'id2' :['ABC'[i] for i in np.random.randint(3,size=1000)],
'val1':np.random.normal(loc=1, size=1000),
'val2':np.random.normal(loc=2, size=1000),
'val3':np.random.normal(loc=3, size=1000))
g = sns.FacetGrid(pd.melt(df,
id_vars=['id1','id2'],
value_vars=['val1','val2','val3']),
hue='id1',col='id2',row='variable')
g.map(sns.kdeplot,'value')
【讨论】:
以上是关于如何为来自同一个熊猫数据框的所有不同列制作单独的 Seaborn kde 图?的主要内容,如果未能解决你的问题,请参考以下文章