2016-03-08 2 views
0

Я использую следующий питон скрипт для построения некоторых данныхИзбавления от линии через график с модульным построением

import numpy as np 
import matplotlib.pyplot as plt 

t = np.linspace(0, 25, 501) 
plt.figure() 
plt.plot(np.mod(t, 2*np.pi), np.sin(t-np.pi/4)) 
plt.show() 

видеть, что раздражает линия, которая проходит примерно от (2 * пи, -0,7) до (0, -0,65) & delta; Я хочу быть в состоянии не показать, что пока не испортить остальную часть графика. И мне нужно, чтобы это был 2D-сюжет, поэтому для меня здесь не вариант для цилиндрического построения. Как мне это сделать? Я попытался изменить linestyle, но это не сработало.

ответ

1

Проблема в том, что вы применяете mod (модуль, а не модульную) к переменной t, которая заставляет ее находиться между значениями 0 и 2 * pi. Это заставляет график «возвращаться» влево несколько раз (один раз за кратное 2 * pi). Если вы удалите mod и просто постройте с использованием t для зависимой переменной, вы получите следующее.

plt.plot(t, np.sin(t-np.pi/4)) 

enter image description here

Если это не то, что вы хотите, и вы на самом деле нужны только частичная синусоида производства вашего кода, вы могли бы сделать что-то вроде следующего и заменить последнюю точку перед wrap с NaN, который сломает линию построения.

tt = mod(t, np.pi * 2) 
tt[np.diff(tt) < -6] = np.nan 
plt.plot(tt, np.sin(t-np.pi/4)); 

enter image description here

Смежные вопросы