python-3.x Нарисуйте горизонтальную и вертикальную линию для каждой точки (разброс) - PullRequest
0 голосов
/ 01 мая 2018

Я строю график, используя (matplotlib) с python-3.x, и я пытаюсь нарисовать горизонтальную и вертикальную линию для каждой точки (разброса), которую я строю на основе значений, которые у меня есть:

import matplotlib.pyplot as plt
x = [-0.9,  0.5  ,  -2.5,  3  , -1.5 ]
y = [2.9 ,  -1.5 ,  1   ,  1  , -2.4 ]
v = [50  ,  33   ,  21  ,  18 , 5    ]

fig = plt.figure(figsize=(10, 8))
plt.scatter(x,y, s=40 ,marker='o', c='black')
plt.grid()
plt.show()

проблема, я не могу найти никакого ответа на вопрос, как нарисовать горизонтальную и вертикальную линию для каждой точки, а также как показать значения для оси y и оси x для этой линии, как показано в примере ( прикрепленное изображение).

Любой совет будет высоко ценится.

прекрасный пример того, чего мне нужно достичь: enter image description here

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете использовать второстепенные галочки, чтобы создать сетку и соответствующие метки.

import matplotlib
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(25)

x,y = np.random.randn(2,7).round(1)

fig, ax = plt.subplots()
ax.scatter(x,y, c="crimson")


ax.set_xticks(x, minor=True)
ax.set_yticks(y, minor=True)
ax.xaxis.set_minor_formatter(matplotlib.ticker.ScalarFormatter())
ax.yaxis.set_minor_formatter(matplotlib.ticker.ScalarFormatter())
ax.tick_params(which="minor", labelbottom=True, labelleft=True, 
               labelcolor="crimson", pad=15)

ax.grid(which='minor', color="navy")

plt.show()

enter image description here

...