Chr*_*ing 11 python pandas seaborn
我正在尝试为我从上一个问题成功融合的数据集绘制核密度估计图。
这就是我应该得到的(这是使用以下命令创建的pd.concat([pd.DataFrame[Knn], pd.DataFrame[Kss], pd.DataFrame[Ktt], ...):
数据框如下所示:
df_CohBeh
Out[122]:
melt value
0 Knn 2.506430e+07
1 Knn 3.344882e+06
2 Knn 5.783376e+07
3 Knn 1.687218e+06
4 Knn 2.975834e+06
.. ... ...
106 Ktt 2.056249e+08
107 Ktt 2.085805e+08
108 Ktt 7.791227e+07
109 Ktt 2.072576e+08
110 Ktt 4.658559e+07
[111 rows x 2 columns]
Run Code Online (Sandbox Code Playgroud)
其中列熔体只是定义为指定三个类别的变量。
# In[parameter distribution]
# Melt the results to create a single dataframe
df_CohBeh = pd.melt(df, value_vars=['Knn', 'Kss', 'Ktt'], var_name='melt')
# Normal distribution plots
f, ax = plt.subplots()
sns.set_context("paper",
rc={"font.size":12,"axes.titlesize":8,"axes.labelsize":12})
ax = sns.displot(data=df_CohBeh, hue=['Knn', 'Kss', 'Ktt'],
kind="kde", fill=True, legend=False, height=5, aspect=1.6,
cut=0, bw_adjust=1)
ax.set(xlabel='Cohesive Parameters [Pa]', ylabel='Kernel Density Estimation')
# Legend
plt.legend(labels=[r'$K_{nn}$', r'$K_{ss}$', r'$K_{tt}$'],
loc='best').set_title("Parameter")
Run Code Online (Sandbox Code Playgroud)
这是我包含时相关的错误消息hue=['Knn', 'Kss', 'Ktt']
ValueError: The following variable cannot be assigned with wide-form data: `hue`
Run Code Online (Sandbox Code Playgroud)
当我从 displot 函数调用中删除时hue=['Knn', 'Kss', 'Ktt'],这是结果图。我不确定我得到的错误在哪里,绘制不正确。

任何帮助,将不胜感激。谢谢你!
当您已经拥有长格式的数据时,您可以使用 指定 x 值,x=并使用 指定组或颜色hue =,并且只需指定数据框中的列名称,例如:
import pandas as pd
import seaborn as sns
import numpy as np
df = pd.DataFrame(np.random.poisson(10,(20,3)),
columns=['Knn', 'Kss', 'Ktt'])
df_CohBeh = pd.melt(df, value_vars=['Knn', 'Kss', 'Ktt'], var_name='melt')
sns.displot(data=df_CohBeh, hue='melt',x='value',
kind="kde", fill=True, legend=False, height=5, aspect=1.6,
cut=0, bw_adjust=1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26190 次 |
| 最近记录: |