2015-02-05 1 views
2

x와 y로 복잡한 신호를 표시하려고하고 ipython 노트북의 내부에서 멋진 대화 형 도구를 사용할 수 있습니다. 특히 휠 줌을 x 축으로 제한하고 싶지만 mpl.to_bokeh()을 사용한 후에는 휠 줌을 수행하는 방법을 알 수 없습니다. mpl.to_bokeh()을 사용하기 전에 기본 도구를 설정하는 방법이 있습니까?mpl.to_bokeh를 사용하여 만든 보케트 플롯에서 도구를 변경하려면 어떻게해야합니까?

import matplotlib.pyplot as plt 
import bokeh.plotting as blt 
from bokeh import mpl 
from bokeh.plotting import show 
blt.output_notebook() 
import numpy as np 

blt.figure(tools='xwheel_zoom') # this doesn't help 
x= np.arange(100)/100 
y= np.exp(1j*2*np.pi*x) 
ax= plt.subplot(211) 
plt.plot(x,y.real) 
plt.subplot(212, sharex=ax) 
plt.plot(x,y.imag) 
fig= mpl.to_bokeh(name='subplots') 
+0

이것은 더 이상 가능하지 않습니다. Bokeh 12.5 (2017 년 4 월) 이후 [Matplotlib에 대한 지원이 중단되었습니다] (https://bokeh.github.io/blog/2017/4/5/release-0-12-5/) 및 mpl.to_bokeh()'이 삭제되었습니다. bryevdv의 [이 Github 주석] (https://github.com/bokeh/bokeh/issues/6249#issuecomment-299981362)도 참조하십시오. –

답변

3

불행하게도, MPL의 compat 층으로이 일을하는 것은 이미 단지 하나의 플롯으로 다소 어려울 것이다 : 여기 컨텍스트에 대한

내가 사용하고자하는 샘플 플롯이다. 현재 그리드 플롯 및 MPL로 수행하는 방법이 현재로서는 확실하지 않습니다. 그러나 bokeh API를 직접 사용하는 것은 매우 간단합니다. 그게 당신을위한 옵션이며, 도움이됩니다 :

from bokeh.plotting import figure, gridplot, show 
import numpy as np 

x = np.arange(100)/100 
y = np.exp(1j*2*np.pi*x) 

p1 = figure(tools='xwheel_zoom') 
p1.line(x,y.real) 

p2 = figure(tools='xwheel_zoom') 
p2.line(x,y.imag) 

grid = gridplot([[p1, p2]]) 
show(grid) 
+0

답장을 보내 주셔서 감사합니다. x 축을 함께 고정시키는 방법을 알고 있습니까? – Craig

+0

예, 범위를 공유하면됩니다. 위의 코드에서 x 축에 연결된 패닝을 사용하려면'p2 = figure (tools = 'xwheel_zoom', x_range = p1.x_range)를 추가하십시오. – bigreddot

관련 문제