Построение 2D-массивов различной формы в matplotlib - PullRequest
0 голосов
/ 12 июля 2020

Я не смог найти ответа на этот конкретный c случай. Скажем, я хочу создать диаграмму рассеяния из следующих данных:

y = np.array([[1,2,3,6,5,3,4,2],[1,2,4,5,5,3,3,2]])
X = np.array([[86],[82]])

Где все значения y[0] являются соответствующими значениями X[0] (86) и так далее. Я знаю, что могу просто использовать функцию numpy repeat, но я подумал, может быть, есть еще какой-нибудь вариант? Я пытался изменить форму любого из массивов, но это не помогло. Есть идеи?

Ответы [ 2 ]

1 голос
/ 12 июля 2020

Вам не нужно много делать. Matplotlib обрабатывает каждый столбец ваших данных как отдельный широковещательный набор данных. Так что все, что вам нужно сделать, это транспонировать ваши входные данные и позволить ему сделать свое c.

plt.scatter(x.T, y.T)
1 голос
/ 12 июля 2020

Мне очень нравится функция плитки из numpy. Я не думаю, что есть способ «увеличить» X [i], чтобы он соответствовал длине y [i]

import numpy as np
import matplotlib.pyplot as plt

y = np.array([[1,2,3,6,5,3,4,2],[1,2,4,5,5,3,3,2]])
X = np.array([[86],[82]])

for i in range(len(X)):
    plt.plot(np.tile(X[i], len(y[i])), y[i], '.')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...