Участок Сюжеты Матплотлиб / Сиборн - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь создать сетку подзаговоров. каждый участок будет выглядеть так же, как на этом сайте.

https://python -graph-gallery.com / 24-гистограмма-с-boxplot-на-топ-Сиборн /

Если у меня есть 10 различных наборов этого стиля сюжета, я хочу превратить их, например, в 5x2.

Я прочитал документацию по Matplotlib и не могу понять, как это сделать. Я могу зациклить подзаговоры и получить каждый вывод, но не могу сделать это в строках и столбцах

импорт панд в виде pd импортировать NumPy как NP импорт морские как sns

df = pd.DataFrame(np.random.randint(0,100,size=(100, 10)),columns=list('ABCDEFGHIJ'))

for c in df :
    # Cut the window in 2 parts
    f, (ax_box,
        ax_hist) = plt.subplots(2,
                                sharex=True,
                                gridspec_kw={"height_ratios":(.15, .85)},
                                figsize = (10, 10))
    # Add a graph in each part
    sns.boxplot(df[c], ax=ax_box)
    ax_hist.hist(df[c])
    # Remove x axis name for the boxplot
plt.show()

результаты просто возьмут этот цикл и поместят их в набор строк и столбцов, в данном случае 5x2

1 Ответ

1 голос
/ 26 мая 2019

У вас есть 10 столбцов, каждый из которых создает 2 вспомогательных участка: блочный график и гистограмму.Таким образом, вам нужно всего 20 цифр.Вы можете сделать это, создав сетку из 2 строк и 10 столбцов


Полный ответ: (Отрегулируйте figsize и height_ratios по вкусу)

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

f, axes = plt.subplots(2, 10, sharex=True, gridspec_kw={"height_ratios":(.35, .35)}, 
                                    figsize = (12, 5))

df = pd.DataFrame(np.random.randint(0,100,size=(100, 10)),columns=list('ABCDEFGHIJ'))

for i, c in enumerate(df):
    sns.boxplot(df[c], ax=axes[0,i])
    axes[1,i].hist(df[c])
plt.tight_layout()
plt.show()

enter image description here

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