2016-10-21 3 views
2

matplotlib 대신 을 사용하여 일부 jupyter 노트북을 다시 작동하려고합니다. 내 원래 기능은 내가 plotly에 수직 라인 (또는 다른 마크 업)을 추가하는 간단한 방법을 볼 수 없습니다플롯에서 분산 형 플롯에 세로선을 그릴 수있는 간단한 방법이 있습니까

def plot_power_spectrum(y): 
    ps = np.abs(np.fft.fft(y - np.mean(y)))**2 

    time_step = 1.0/6 # hours 

    freqs = np.fft.fftfreq(y.size, time_step) 
    idx = np.argsort(freqs) 

    plt.plot(freqs[idx], ps[idx]) 
    plt.axvline(2*np.pi/168.0, color="magenta", alpha=0.4, lw=5) 
    plt.axvline(-2*np.pi/168.0, color="magenta", alpha=0.4, lw=5) 

입니다.

커프스 단추 통합 사용시 this이 발견되었습니다. 함수 이름은 같지만 (iplot) 아무 관계도없는 것 같습니다.

나는 또한 this similar question을 보았습니다. 내가 생각할 수있는 것은 "분명히 더 간단한 방법이있다"는 것이 었습니다 ... 거기 있습니까?

답변

2

음모에 문제가 없습니다. https://plot.ly/python/shapes/

자세한 예를 들어

from plotly.graph_objs import * 
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot 
init_notebook_mode(connected=True) 

y=np.random.randint(30,size=100) 

ps = np.abs(np.fft.fft(y - np.mean(y)))**2 

time_step = 1.0/6 # hours 

freqs = np.fft.fftfreq(y.size, time_step) 
idx = np.argsort(freqs) 


data = Scatter(x=freqs[idx], y=ps[idx]) 
layout = Layout(shapes=[dict({ 
      'type': 'line', 
      'x0': 2*np.pi/168.0, 
      'y0': 0, 
      'x1': 2*np.pi/168.0, 
      'y1': 35000, 
      'line': { 
       'color': '#FF00FF', 
       'width': 5 
      }})]) 
iplot({'data':[data], 'layout':layout}) 

여기 모양의 섹션을 확인 : 여기 내 노트북 ​​세포입니다