Нет линий на графике с использованием matplotlib Python

avatar
Peter Alexander
8 апреля 2018 в 04:17
2425
1
1

Вот мой код:

import matplotlib.pyplot as plt
t = np.array([[0,1,2,3,4,5,6,7,8,9,10,11,12]])
g1 = np.array([[2,2.2,3,4,3.5,4.3,4.9,6,7.9,9.9,9.5,9.6,10]]) 
plt.figure(1)
plt.plot(t,g1)

Ничего не происходит. plt.show() не помогает. Я знаю, это потому, что я использую двойные скобки в t и g1, но мне это нужно для моего скрипта. Как сохранить мои двойные скобки, т.е. размеры, И иметь возможность рисовать?

РЕДАКТИРОВАТЬ: ОК, мне пришлось транспонировать их, чтобы построить их - нет ли способа, которым Python автоматически обнаружит это?? (Я привык к Matlab, где размеры в этом отношении не имеют значения для построения графиков)

Источник

Ответы (1)

avatar
Jacques Kvam
8 апреля 2018 в 04:23
3

Вы можете сжать размеры t и g1 при их построении:

plt.plot(t.squeeze(), g1.squeeze())

Сжатие удаляет все одноэлементные измерения, поэтому на графике представлены одномерные массивы.

Вы заметили, что если вы транспонируете его, сюжет работает. Это потому, что matplotlib отображает столбцы, когда вы вводите в него 2D-данные. График создает линии, и нет линий, когда все столбцы имеют только одно значение. Другой способ увидеть это — построить точечный график.

plt.plot(t, g1, 'o')

enter image description here