Как построить 2 графика, используя Seaborn в Python 3.6? - PullRequest
0 голосов
/ 22 марта 2019

Я хочу, чтобы первый субплот включал только «Máximo», «Média», «Mínimo», а второй - только «Amplitude», «Desvio Padrão».

Я попробовал следующее:

def plotGraph(title, z): #Todo Completar a função com legendas e título.
    sns.set()
    fig, ax = plt.subplots(2,1)
    sns.lineplot(data=z, hue=['Máximo', 'Média', 'Mínimo'], ax=ax[0])
    sns.lineplot(data=z, hue=['Amplitude', 'Desvio Padrão'], ax=ax[1])
    plt.show()

Но получил это: image

Я знаю, что могу сделать это с несколькими вызовами, используя plt.plot (), но есть ли способ сделать с seaborn?

         **EDITED**

спасибо, но я понял, что мне не нужен Desvio Padrão.Есть ли способ просто легенда «Амплитуда»?

def plotGraph(title, df): #Todo Completar a função com legendas e título.
    sns.set()
    fig, ax = plt.subplots(2,1)
    fig.suptitle(title)
    sns.lineplot(data=df[['Máximo', 'Média', 'Mínimo']], hue=['Máximo', 'Média', 'Mínimo'], ax=ax[0])
    sns.lineplot(data=df['Amplitude'], hue='Amplitude', ax=ax[1], legend='full')
    fig.tight_layout(rect=[0.01, 0.01, 0.95, 0.95])  # Controla o tamanho dos gŕaficos na figura (valores entre 0 e 1).
    plt.show()

введите описание изображения здесь

1 Ответ

1 голос
/ 22 марта 2019

Вам необходимо задать подкадр данных, включив в него только те столбцы, которые вы хотите построить:

import pandas as pd
import numpy as np; np.random.seed(0)
import matplotlib.pyplot as plt
import seaborn as sns
import cufflinks as cf

# Generate sample data
df = cf.datagen.lines(5)
df.columns = ['Máximo', 'Média', 'Mínimo', 'Amplitude', 'Desvio Padrão']
df = df.reset_index(drop=True)

def plotGraph(title, z):
    sns.set()
    fig, ax = plt.subplots(2,1)
    fig.suptitle(title)
    sns.lineplot(data=z[['Máximo', 'Média', 'Mínimo']], hue=['Máximo', 'Média', 'Mínimo'], ax=ax[0])
    sns.lineplot(data=z[['Amplitude', 'Desvio Padrão']], hue=['Amplitude', 'Desvio Padrão'], ax=ax[1])
    fig.tight_layout(rect=[0, 0.03, 1, 0.95])
    plt.show()

plotGraph('Plot Title', df)

Plot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...