Нарисуйте несколько боксов на одной фигуре - PullRequest
0 голосов
/ 13 января 2019

Я использую Python-3.x, и я хотел бы построить несколько коробочных диаграмм на одной фигуре, все данные из одного массива, где форма этого массива (100, 301)

Если я воспользуюсь приведенным ниже кодом, он построит их все (у меня будет 301 блокпост на одной фигуре, что слишком много)

fig, ax = plt.subplots()
ax.boxplot(my_data)
plt.show()

Я не хочу отображать все данные, я просто хочу отобразить 10, 15 или 20 (переменное число) данных, используя цикл for или любой метод, который работает лучше всего.

например, я хочу построить блокпосты каждые 50 данных, что означает, что у меня будет около 6 блокпостов из 301 на моей фигуре, я пытался использовать для цикла, но не повезло

Любой совет будет высоко ценится

1 Ответ

0 голосов
/ 13 января 2019

Вы можете просто использовать индексирование для построения каждых 50-х точек данных, используя переменную step. Чтобы иметь отдельные блочные графики и избежать их наложения, вы можете указать позиции отдельных блочных графиков с помощью параметра positions. my_data[:, ::step] дает вам необходимые данные для построения. Ниже приведен пример использования некоторых случайных данных.

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

my_data = np.random.randint(0, 20, (100, 301))
step = 50

posit = range(my_data[:, ::step].shape[1])
ax.boxplot(my_data[:, ::step], positions=posit)
plt.show()

enter image description here

...