2016-08-01 2 views
2

ColumnDataSource를 사용하지 않고 대신에 pandas 데이터 프레임 열을 Bokeh 플롯에 직접 전달했습니다.Bokeh ColumnDatasource에서 데이터를 추출하는 방법

곧 ColumnDataSource에 데이터가 있어야하는 HoverTool을 구현해야했지만. 그래서 ColumnDataSource를 사용하기 시작했습니다.

이제 상자 주석을 만들었고 데이터의 특정 열의 최대 값을 사용하여 상자의 위쪽 테두리를 정의해야했습니다.

는 그 사용하여 쉽게 팬더을 수행 할 수 있습니다

low_box = BoxAnnotation(
    top=flowers['petal_width'][flowers['species']=='setosa'].max(), 
    fill_alpha=0.1, fill_color='red') 

그러나 나는 ColumnDataSource에서 최대 값을 추출하는 방법을 알아낼 수 없습니다.

최대 값을 추출 할 수있는 방법이 있습니까, 아니면 처음부터 모든 접근 방식이 잘못 되었습니까?

+0

미안 당신은'최고 = flowers.loc [꽃 [ '종'] == 'setosa', 'petal_width']. 최대()을 요구하고 [0]'? – EdChum

+0

@EdChum 팬더 데이터 프레임에서 최대 값을 추출 할 수 있습니다. Bokeh가 데이터를 저장하는 데 사용하는 객체 인 bokeh ColumnDataSource에서 동일한 작업을 수행하는 방법을 파악하려고합니다. http://bokeh.pydata.org/en/0.10.0/docs/reference/models/sources .html # ColumnDataSource – multigoodverse

답변

2

ColumnDataSource 개체의 속성은 data이며 처음에는 개체를 만드는 데 사용되는 파이썬 사전을 반환합니다.

from bokeh.plotting import ColumnDataSource 

# define ColumnDataSource 
source = ColumnDataSource(
    data=dict(
     x=[1, 2, 3, 4, 5], 
     y=[2, 5, 8, 2, 7], 
     desc=['A', 'b', 'C', 'd', 'E'], 
    ) 
) 

# find max for variable 'x' from 'source' 
print(max(source.data['x'])) 
관련 문제