散点图网格按matplotlib或seaborn中的列划分

2024-05-16 21:38:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用Python制作一个分面散点图(我知道在R中我是怎么做到的,但是当谈到Python时,我还是个新手…)。 我有一个像这个假的测向仪:

df=pd.DataFrame(
    [['Alex',10, 2, 2, 6],['Bob',12, 6, 5, 1],['Clark',13, 5, 3, 5]],columns=[
        'Name','Fruits', 'Apples', 'Bananas', 'Citrus'])  

我想做一个散点图,说明每种水果之间的关系以及每个名字的水果总和,即水果和苹果、水果和香蕉、水果和柑橘。
例如,关于水果和苹果之间关系的散点图是由以下代码生成的:

^{pr2}$

有什么方便的方法吗?在


Tags: columnsname苹果dataframedf关系pdbob
1条回答
网友
1楼 · 发布于 2024-05-16 21:38:15

Seaborn's FacetGrid正是你要找的。Seaborn通常与长df一起工作也最好。在

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")

相关问题 更多 >