Сетка точечной диаграммы огранена столбцами в matplotlib или seaborn - PullRequest
2 голосов
/ 12 марта 2019

Я пытаюсь создать ограненную диаграмму рассеяния на 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']])  

Есть ли удобный способ сделать это?

1 Ответ

2 голосов
/ 12 марта 2019

FacetGrid от Seaborn - это именно то, что вы ищете.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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...