Python matplotlib或seaborn中由列刻面的散点图栅格

Python matplotlib或seaborn中由列刻面的散点图栅格,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我正试图用Python制作一个多面的散点图(我知道我在R中是如何做到这一点的,但对于Python我是一个新手…)。 我有一个像这个假的df: df=pd.DataFrame( [['Alex',10, 2, 2, 6],['Bob',12, 6, 5, 1],['Clark',13, 5, 3, 5]],columns=[ 'Name','Fruits', 'Apples', 'Bananas', 'Citrus']) 我想做一个散点图,显示每个水果和每个名字的水果

我正试图用Python制作一个多面的散点图(我知道我在R中是如何做到这一点的,但对于Python我是一个新手…)。 我有一个像这个假的df:

df=pd.DataFrame(
    [['Alex',10, 2, 2, 6],['Bob',12, 6, 5, 1],['Clark',13, 5, 3, 5]],columns=[
        'Name','Fruits', 'Apples', 'Bananas', 'Citrus'])  
我想做一个散点图,显示每个水果和每个名字的水果总数之间的关系,即水果和苹果、水果和香蕉、水果和柑橘。
例如,带有水果和苹果之间关系的散点图应为该代码生成的散点图:

plt.scatter(df[['Apples']], df[['Fruits']])  
有什么方便的方法吗?

正是您想要的。Seaborn通常也适用于长dfs

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

#create a long df, with columns for name, total fruit, and rows for specific fruit counts
df_melt = pd.melt(df, id_vars=['Name', 'Fruits'], value_vars=['Apples','Bananas','Citrus'], var_name='Fruit_Type', value_name='Count')

g = sns.FacetGrid(df_melt, col="Name",  col_wrap = 2, hue = "Fruit_Type")
g = g.map(plt.scatter, "Count", "Fruits")

您需要澄清“带关系的散点图”是什么意思。@Bazinga更清晰?Fruits列只是其他3列的总和。你想为Alex、Bob和Clark分别绘制一条曲线吗?这就是我要寻找的,但代码给了我一个关键错误:“[Index(['Fruit_Type','Fruit'],dtype='object')]都不在[columns]中”`它只是网格代码中的df名称(在fruits的末尾有一个s)。非常感谢。您还可以使用FaceGrid参数“色调”根据列更改观察值的颜色。不过,要明确的是,由于样本量小,这种可视化效果看起来不是很好。我不确定这是学习Seaborn的FaceGrid的力量的最好的例子。这个名字叫“faceted”。如果我想将色调作为名称,并将水果类型/水果的比率作为“方面”-我该怎么做?(我为r-lingo感到抱歉,我不确定它在python中的名称)我不确定我是否完全理解您的问题,但是sns.FacetGrid中的'col'参数将定义每个图表应包含的数据子集,'hue'参数可以指向可用于为实例着色的类别列。