#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], '^-')