matplotlib.pyplot.график просто дает два узла без указания линии, почему это так?

#python #matplotlib

Вопрос:

Я пытаюсь провести линию между 2 узлами (x1=130, y1=130) и (x2=202, y2=202)

этот код хорошо работает

 coor = np.array([[130,202],[130,202]])
_ = plt.plot(coor[0],coor[1])
 

и я получил

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

Однако следующий код, полученный из документа matplotlib, работает не так, как указано там

 plt.plot(130, 130,'g^', 202, 202, 'r^')
 

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

который просто дает два узла без указания линии, почему это так?

Ответ №1:

Это связано с тем, что в документах matplotlib в plot(x1, y1, 'g^', x2, y2, 'g-') , x1 , y1 , x2 и y2 предполагается, что это разные наборы данных, т. е. массивы, состоящие из нескольких точек.

В этом случае вы получите график x1 vs y1 с зелеными треугольниками и зеленой линией, соединяющей точки x2 vs y2 .

Но у вас не будет линии, соединяющей x1:y1 x2:y2 вас .

Также вы, вероятно, хотели написать plt.plot(130, 130,'g^', 202, 202, 'r-') (обратите внимание на минус вместо ^ ).

Так, например, это будет работать:

 plt.plot([1, 2], [3, 4],'g^', [5, 6], [7, 8], '^-')
 

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