저는 코딩이 새로워서 Bokeh와 협력하려고합니다. Newcomer to StackOverflow 너무, 그래서 내가 여기 뭔가 잘못했는지 말해주십시오.np.linspace vs Bokeh 범위
나는 Bokeh 웹 사이트에서 this example을 가지고 노는 중이며 문제가 발생했습니다. 이 예제에서와 같이 np.linspace를 사용하여 x 값을 설정하면 상호 작용을 사용하고 업데이트 기능으로 재생할 수 있습니다. 그러나 x를 목록으로 변경하고 range()를 사용하면이 오류가 발생합니다. TypeError : 목록에만 연결할 수 있습니다 ("float"이 아님). 내가 이해하는 한, 문제는 "x + phi"에있다. 왜냐하면 x는리스트이고 φ는 플로트이기 때문이다.
목록을 플로트로 연결할 수 없지만, numpy.ndarray를 사용하여 파이썬이 y 값을 제어하는 함수를 수정한다는 것을 이해할 때만 그 이유는 무엇입니까? https://docs.python.org/3.6/tutorial/datastructures.html
또한 다음 코드를 사용하여 재생할 수 있습니다 :
x = np.linspace(0,10,1000)
y = np.sin(x)
p = figure(title="example", plot_height=300, plot_width=600, y_range=(-5,5))
r = p.line(x, y)
def update(f, w=1, A=1, phi=0):
if f == "sin": func = np.sin
elif f == "cos": func = np.cos
elif f == "tan": func = np.tan
r.data_source.data["y"] = A * func(w * x + phi)
push_notebook()
show(p, notebook_handle=True)
interact(update, f=["sin", "cos", "tan"], w=(0,100), A=(1,5), phi=(0,20, 0.1))
리스트와 ndarrays는 완전히 다른 의미를 '+'연산자에 할당합니다. 그것들은 매우 다른 유형이며, 당신이 다른 것과 똑같이 행동한다고 가정해서는 안됩니다. – user2357112
아마도'range ='와 비슷한 매개 변수를 가지고 있지만'numpy' 배열을 생성하는'x = np.arange (0,10, .01)'을 사용할 수 있습니다. – hpaulj
'+'연산자는 numpy 배열에 대한 추가 작업을 수행하지만리스트에 대한 연결 작업은 수행하지 않습니다. '[1] + [1] == [1, 1]'np.array ([1]) + np.array ([1]) == np.array ([2] @hpaulj가 말했듯이,'range' 대신에'np.arange'를 사용하여 목록보다는 numpy 배열 출력을 얻습니다. –