繁体   English   中英

散点图网格由 matplotlib 或 seaborn 中的列分面

[英]Scatter plot grid faceted by columns in matplotlib or 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'])  

我想制作一个散点图,其中包含每个水果之间的关系以及每个名称的水果总和,即水果和苹果、水果和香蕉、水果和柑橘。
例如,带有 Fruits 和 Apples 之间关系的散点图将是由以下代码生成的散点图:

plt.scatter(df[['Apples']], df[['Fruits']])  

有没有什么方便的方法可以做到这一点?

Seaborn 的 FacetGrid正是您所需要的。 Seaborn 通常也适用于 long-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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM