Boxplot на matplotlib со строками в соответствии с определенным значением столбца X - PullRequest
0 голосов
/ 11 октября 2018

У меня есть таблица с 501 столбцом.Первый столбец в основном имеет значение -1 или 1. Это значение как-то основано на других 500. Я пытаюсь найти взаимосвязь, и для этого потребуется некоторая визуализация.

ТеперьЕсть более 1000 строк, и я решил сделать коробочный сюжет.Я хочу взять первый столбец и построить шесть случайных прямоугольников для каждого значения (-1 и 1)

Таким образом, график должен искать первый столбец, если значение равно -1 - взять другой столбец и построить графикблокпост их значений.Но так как значения находятся в ряду, это немного f проблема.Также заставить его выбрать 6 случайных значений как -1, так и 1.Я решил, что мне нужно создать новый список или фрейм данных с 6 значениями для каждого (-1 и 1), но как это сделать

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

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете сделать что-то вроде этого:

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

d = {
    'a': pd.Series(np.random.choice([1, -1], size=10)),
    'b': pd.Series(np.random.randn(10)),
    'c': pd.Series(np.random.randn(10))
}
df = pd.DataFrame(d)

# plot for first column when value is 1
df[df.a == 1].sample(3).T.iloc[1:].boxplot()

# plot for first column when value is -11
df[df.a == -1].sample(3).T.iloc[1:].boxplot()

Объяснение:

Получить строки, в которых первое значение равно 1

df[df.a == 1]

Получить случайное 3строка из отфильтрованных единиц

df[df.a == -1].sample(3)

Выкиньте первый столбец (то есть с единицами) и транспонируйте DataFrame (таким образом, ваши прямоугольники будут построены для каждой строки вместо столбцов)

df[df.a == -1].sample(3).T.iloc[1:]

Наконец, построите сюжет на поле

df[df.a == -1].sample(3).T.iloc[1:].boxplot()

Результат:

enter image description here

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