bokeh 시각화 작업 중 하나는 클라이언트 측에서 대화 형 기능을 구현하기 위해 CustomJS
을 사용하여 서버없이 실행된다는 것입니다. 자바 스크립트를 사용하여. ColumnDataSource
을 CustomJS
으로 전달하면 대화 형으로 플롯을 업데이트하는 데 문제가 없습니다.`CustomJS`를 사용하여 파이썬에서 bokeh로 임의의`json` 데이터를 전달하는 방법
그러나 내가 할 수없는 것은 출력 HTML에 임의의 json
데이터를 포함시키는 것입니다.
from bokeh.io import output_file
from bokeh.layouts import widgetbox
from bokeh.models import CustomJS
from bokeh.models.widgets import Div, Button
from bokeh.plotting import show
data_for_client = {
"x": 3,
"y": {
"foo": [1, 2, 3],
"bar": {"some_bar": "doge", "other bar": "much json"}
},
"z": [[1, 2], [3, 4]]
}
callback = CustomJS(args={"data_for_client": data_for_client}, code="""
console.log(data_for_client);
""")
content = widgetbox(
Button(label="click here", callback=callback),
Div(text="some complicated interactive stuff based on json content here")
)
output_file("issue.html")
show(content)
의 data_for_client
이 json
의 json
, 다른 부분은 일부 위젯과 사용자의 상호 작용에 따라 사용되는 중첩 복잡해은 다음과 같습니다 아래의 자체 포함 된 예를 참조하십시오.
사용자 상호 작용을 기준으로 json
데이터를 수정할 필요가 없으며 모든 청취자 나 특별한 것을 첨부 할 수 있습니다. CustomJS
콜백에서 사용할 수있는 json 값의 콘텐츠가 필요합니다.
json
데이터에 대한 유사한 아무것도 찾을 수없는, 단순한 열 데이터의 경우, 나는
ColumnDataSource
내 데이터를 포장 할 수 있으며
CustomJS
에 대한 인수로 그 전달합니다. 위의 코드는 메시지와 함께 실패합니다
ValueError: expected an element of Dict(String, Instance(Model)), got {'data_for_client': {'x': 3, 'y': {'foo': [1, 2, 3], 'bar': {'some_bar': 'doge', 'other bar': 'much json'}}, 'z': [[1, 2], [3, 4]]}}
좋아, 내 얼굴의 얼굴. 그러나 이것은 문제를 해결하지 못한다. 나는이 점에 관해서 질문을 편집했다. –
Ajax/Json-Datasource와 같은 것이 있다고 가정합니다. – MEE
Ajax 데이터 소스가 존재하며, 웹 서버에서 데이터를 전송하는 것으로 알고 있습니다. 문서에서 json 소스를 찾지 못했습니다. –