2017-09-19 1 views
2

저는 Bokeh/Python과 HTML에 비교적 익숙하지 않습니다. 웹 페이지에 표시하려는 Bokeh 플롯을 만들었습니다. 나는 https://bokeh.pydata.org/en/latest/docs/user_guide/embed.html에 지시를 따라왔다. 특히 autoload_server를 사용하여 스크립트를 생성하고 있습니다. 그러나, 나는 (위의 링크에서 마지막 줄에 따라, 분명히 올바른) HTML 문서의 머리에 스크립트 태그를 배치 할 때 :html로 서버 기반 보케 플롯 삽입하기

<!DOCTYPE html> 
<head> 
<script 
src="http://localhost:5006/autoload.js?bokeh-autoload-element=6abffe3c-d0dc-4e7b-80d3-0e7dc2d1b100&bokeh-absolute-url=http://localhost:5006&bokeh-session-id=bTinOCNtjuDagomoQgcw1EKJ7dUMkzSQJIRKozmGiqTc" 
id="6abffe3c-d0dc-4e7b-80d3-0e7dc2d1b100" 
data-bokeh-model-id="676400d3-9929-4d9e-aefe-2fb440f526d6" 
data-bokeh-doc-id="" 
></script> 
</head> 

<body> 
</body> 
</html> 

다음과 같은 오류 메시지가 웹 페이지에 나타납니다

보케 오류 보케 모델을 렌더링 오류 : ID를 가진 요소는 '6abffe3c-d0dc-4e7b-80d3-0e7dc2d1b100은'그럼 내가 머리에서 스크립트를 제거하고 몸에 배치

아래에 있어야합니다. 그러나 이것은 완전히 빈 웹 페이지가됩니다. 줄거리는 전혀 렌더링되지 않습니다.

도움을 주시면 대단히 감사하겠습니다. 우리는 기본 예제에 의해 생성 된 HTML을 검사하는 경우

+0

동일한 문제로 실행될 때 본문에 생성 된 스크립트를 배치하는 것이 효과적이었습니다. 실제로 설명서가 항상 100 % 정확하지는 않습니다 (더 이상). 그러나 아마도 여러분이 플롯을 만들기 위해 사용하는 스크립트를 공유 할 때 문제를 발견 할 수 있습니까? – Joris

답변

0

은 : 대체 선택적으로

<!DOCTYPE html> 
<html> 
    <head> 
    <link rel="stylesheet" href="https://cdn.pydata.org/bokeh/release/bokeh-0.12.9.min.css" type="text/css" /> 
    <script type="text/javascript" src="https://cdn.pydata.org/bokeh/release/bokeh-0.12.9.min.js"></script> 
    </head> 
    <body> 

    <!-- generated div --> 
    <div class="bk-root"> 
     <div class="bk-plotdiv" id="7a7b6ca9-3dec-430d-98f2-a0a7067c9ae0"></div> 
    </div> 

    <!-- generated script --> 
    <script type="text/javascript"> 
     (function() {..}) 
    </script> 

    </body> 
</html> 

자동 로딩 스크립트 대신 생성 <div><script> 대체 및 :

from bokeh.plotting import figure 
from bokeh.resources import CDN 
from bokeh.embed import file_html 

plot = figure() 
plot.circle([1,2], [3,4]) 

html = file_html(plot, CDN, "plot") 
print(html) 

은 다음 형식을 따릅니다 정적 CSS와 JS 참조.

<!DOCTYPE html> 
<html> 
    <head> 
    <!-- optional --> 
    <link rel="stylesheet" href="https://cdn.pydata.org/bokeh/release/bokeh-0.12.9.min.css" type="text/css" /> 
    <script type="text/javascript" src="https://cdn.pydata.org/bokeh/release/bokeh-0.12.9.min.js"></script> 
    </head> 
    <body> 

    <!-- autoloading script --> 
    <script 
     src="https://demo.bokehplots.com/apps/slider/autoload.js?bokeh-autoload-element=aee6d395-d079-4e02-ae72-8e70e617990d&bokeh-app-path=/apps/slider&bokeh-absolute-url=https://demo.bokehplots.com/apps/slider" 
     id="aee6d395-d079-4e02-ae72-8e70e617990d" 
     data-bokeh-model-id="" 
     data-bokeh-doc-id="" 
    ></script> 

    </body> 
</html> 
+0

응답 해 주셔서 감사합니다. 나는 시체에 스크립트를 넣고 이것을 시도했지만 빈 웹 페이지 만 얻는다. (문제없이 로컬로 대화식 Bokeh 그림을 볼 수 있습니다.) –

+0

이제 autoload_server 대신 server_session을 사용해 보았습니다. 다른 제안이 있으십니까? –

+0

url의 경우'localhost' 대신'127.0.0.1'을 시도하십시오 https://bokeh.pydata.org/en/latest/docs/reference/embed.html#bokeh.embed.autoload_server – brennan