Я пытаюсь воссоздать следующую диаграмму с помощью matplotlib, но я не могу понять, как создать линии от 0,0 (начало) до каждой точки.
мой текущий код:
plt.figure(figsize=(10,7))
plt.grid()
plt.xlabel('Movie 1')
plt.ylabel('Movie 2')
A = [1.0, 2.0]
B = [2.0, 4.0]
C = [2.5, 4.0]
D = [4.5, 5.0]
xs = [A[0], B[0], C[0], D[0]]
ys = [A[1], B[1], C[1], D[1]]
users = ['A', 'B', 'C', 'D']
for i, user in enumerate(users):
x = xs[i]
y = ys[i]
plt.scatter(x, y, marker = 'o')
plt.plot(x,y,0,0, linestyle = '--' )
plt.text(x+0.01, y+0.01, user, fontsize=19)
plt.xlim(0,7)
plt.ylim(0,7)
plt.show()
Код возвращает только точки, но без линий... как мне создать линии?
Спасибо!
вы можете сделать это, построив линии вручную в цикле for:
for i, user in enumerate(users):
x = xs[i]
y = ys[i]
plt.scatter(x, y, marker = 'o')
# V this adds the lines V
plt.plot([0,xs[i]], [0, ys[i]], color = "black")
# ^ this adds the lines ^
plt.plot(x,y,0,0, linestyle = '--' )
plt.text(x+0.01, y+0.01, user, fontsize=19)
что приводит к этому графику
Чтобы построить линию A с помощью
plt.plot(x,y...
:x
— это(0,1)
, аy
— это(0,2)
. Вы можете застегнуть молнию(0,0)
с помощьюA
, чтобы сделать их. То же и с остальными тремя. Учебник по Pyplot.