2017-03-05 2 views
1

저는 Bokeh를 처음 접했고 누군가가 약간의 도움을 빌려 왜 내 음모가 업데이트되지 않는지 알려줄 수 있는지 궁금해하고 있었습니까? 코드는 매우 간단하고, 여기에서 찾을 수 있습니다 : 코드는 단지 기능 "get_dataset", 플롯 막대 그래프를 사용하여 일부 데이터를 잡아, 나를이를 사용하여 플롯을 업데이트 할 예정이다보케 그림이 업데이트되지 않습니까?

http://pastebin.com/MLAigEG6

드롭 다운 상자 및 슬라이더. 두 개의 작은 dataframes 여기에서 찾을 수있다 :

https://github.com/degravek/bdata

슬라이더 (15) (30 개 합계 값이 플롯)에서 디폴트로 설정된다. 슬라이더를 이동하거나 드롭 다운 상자를 변경하면 플롯의 축이 어떤 이유로 업데이트되지 않습니다. 예를 들어, 슬라이더가 2로 설정된 경우 막대가 2 개만 표시되고 그에 따라 축이 조정됩니다. 좀 봐 주셔서 감사합니다.

답변

2

멋진 코드. 업데이트 기능에서 플롯의 x_range.factors도 업데이트해야합니다. 여기서는 global asdata이 필요 없습니다.

def update_samples_or_dataset(attrname, old, new): 
    dataset = dataset_select.value 
    n_samples = int(samples_slider.value) 

    asdata = get_dataset(dataset, n_samples) 
    plot.x_range.factors = asdata['aspects'].tolist() # this was missing 
    source.data = dict(x=asdata['aspects'].tolist(), y=asdata['importance'].values) 
+0

와우, 정말 고마워. 이로 인해 많은 시간을 절약 할 수있었습니다. – Kyle

+0

나는 한 가지 더 빠른 질문을했다. Bokeh 서버를 사용하여 Bokeh에서 "사용자 정의"기능을 사용하는 방법을 알고 있습니까? 예를 들어, 다음을 사용하여 플롯 할 수 있습니다 def mplot (소스) : p = pd.DataFrame() p [ 'aspects'] = source.data [ 'x'] p [ 'importance'] = source.data [ 'Y'] 플롯 = 바 (p는, 값 = '중요성', 라벨 = '측면', 전설 = 거짓) 반환 음모 나의 현재 시도가 여기에 있습니다 : http://pastebin.com/7Zk9ampq 하지만 실행되지 않습니다. 나는 함수 "update_samples_or_dataset"을 얻는 것에 대해 걱정하지 않는다. 단지 보여줄 초기 플롯이다. 감사! – Kyle

+0

누락 된 데이터 (sorted_ngram3.csv, sorted_chunk.csv 및 sorted_rake.csv)도 입력하면 유용 할 것입니다. 그러나 일반적으로 코드를 테스트하기 위해 데이터 포인트가 적고 세부 사항이 적은 간단한 예제를 작성해야합니다. –

관련 문제