Соединение замаскированных точек с линией - PullRequest
0 голосов
/ 25 октября 2018

Как я могу соединить эти точки с полилинией?Я должен соединить их по порядку, чтобы значение y в точке x = 1 соединялось со значением y в точке x = 2 и так далее.Или я могу как-то объединить эти отдельные участки?

import numpy as np
import matplotlib.pyplot as plt

y = np.random.uniform(-1,1,size=100)
x = np.arange(0,100)
pos = y[y>=0]
neg = y[y<0]


fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(x[y>=0],pos, 'rs')
ax.plot(x[y<0],neg, 'bo')

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вы разделили маркер, используя 'rs' (красный квадрат).Вы можете добавить тире в начале этой строки, чтобы указать, что вы хотите, чтобы они были соединены линией:

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(x[y>=0], pos, '-rs')
ax.plot(x[y<0], neg, '-bo')

Вы также можете объединить их в один и тот же вызов plot, если хотите,однако он менее читабелен:

ax.plot(x[y>=0], pos,'-rs', x[y<0], neg, '-bo')

enter image description here

0 голосов
/ 25 октября 2018

Вы почти у цели!

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(x[y>=0],pos, 'rs')
ax.plot(x[y<0],neg, 'bo')
ax.plot(x[y>=0],pos, 'red')
ax.plot(x[y<0],neg, 'blue')
plt.show()

Это соединит точки - вы можете добавить столько artist, сколько захотите, к ax по отдельности.и каждый plot создаст художника.

enter image description here

...