Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用facetgrid在Seaborn中绘制多标签数据散点图?_Python_Pandas_Scatter Plot_Seaborn - Fatal编程技术网

Python 如何使用facetgrid在Seaborn中绘制多标签数据散点图?

Python 如何使用facetgrid在Seaborn中绘制多标签数据散点图?,python,pandas,scatter-plot,seaborn,Python,Pandas,Scatter Plot,Seaborn,我有一个具有多个标签的数据集。我想用熊猫和海洋生物创建一个由散点图组成的Facetgrid。此外,这个数据集有不同的来源,我也想比较一下。例如,这可能是对不同ML算法的预测,以及并排在两个图中的真实标记。我想要的情节是这样的,有更多方法和标签的空间: 在这里,右栏是第一个标签,左栏是第二个标签 目前,我的熊猫数据帧看起来像这样:l1,l2,method,x,y。其中l1和l2是不同的标签。我可以使用以下代码绘制一列: g = sns.FacetGrid(df, row='method', hue

我有一个具有多个标签的数据集。我想用熊猫和海洋生物创建一个由散点图组成的Facetgrid。此外,这个数据集有不同的来源,我也想比较一下。例如,这可能是对不同ML算法的预测,以及并排在两个图中的真实标记。我想要的情节是这样的,有更多方法和标签的空间:

在这里,右栏是第一个标签,左栏是第二个标签

目前,我的熊猫数据帧看起来像这样:l1,l2,method,x,y。其中l1和l2是不同的标签。我可以使用以下代码绘制一列:

g = sns.FacetGrid(df, row='method', hue='l1')
g.map(plt.scatter, 'x', 'y')
sns.plt.show()

但是我怎样才能得到第二列呢?直观的做法是将色调参数设置为列表,但这不起作用。

我认为您需要修改数据帧:

l1_df = df[['l1','method','x','y']]
l1_df['label_type'] = 'l1'
l1_df.rename(columns={'l1':'label'}, inplace=True)

l2_df = df[['l2','method','x','y']]
l2_df['label_type'] = 'l2'
l2_df.rename(columns={'l2':'label'}, inplace=True)

df = pd.concat([l1_df,l2_df])
然后使用以下菜单中的真正直观选项col:


作品但是通过上面的代码,我复制了x,y数据,使不同的标签沿着列绘制。是的,但这不是你想要的吗?示例图由重复的x、y数据组成。我认为目标是创建完全相同的图,并排使用不同的色调,表示每种方法中x,y坐标的预测集和真实集的不同标签。如果您仍然希望能够对原始数据运行分析,则始终可以通过new_df=pd.concat[l1_df,l2_df]使连接的数据帧成为一个新对象,这样您仍然可以使用df.Correct。然而,对我来说,仅仅为了能够绘制多标签数据就必须为每个附加标签复制每个实例似乎是错误的。或者我对如何在熊猫中进行数据表示的理解是有限的?您可能想阅读
g = sns.FacetGrid(df, row='method', col='label_type', hue='label')
g.map(plt.scatter, 'x', 'y')
sns.plt.show()