Вопрос по – Как отбросить соединительные линии, где функция прерывистая

11

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

x=linspace(0,1,100)    
y=zeros(100)
y[x<0.5] = x[x<0.5]
y[x>=0.5] = 1 + x[x>=0.5]
plot(x, y, '-o')

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Ваш Ответ

1   ответ
19

import numpy as np
from pylab import *
x=linspace(0,1,100)    
y=zeros(100)
y[x<0.5] = x[x<0.5]
y[x>=0.5] = 1 + x[x>=0.5]

pos = np.where(np.abs(np.diff(y)) >= 0.5)[0]

x[pos] = np.nan
y[pos] = np.nan

plot(x, y, '-o')

pos = np.where(np.abs(np.diff(y)) >= 0.5)[0]+1
x = np.insert(x, pos, np.nan)
y = np.insert(y, pos, np.nan)

enter image description here

Итак, я отредактировал ответ с помощью вставки значения нан. Он будет копировать исходные данные, но это очень быстро.
Благодарю. Интересная идея, но я не хочу терять ни одного из пунктов. Я полагаю, я мог бы вставить значение nan между абсциссами, где происходит разрыв. Но это было бы неловко и слишком медленно. Andrey Sokolov

Похожие вопросы