2017-12-17 22 views
0

팬더를 사용하지 않고 Bokeh 차트에서 x 축을 만들 수 있습니까? Python datetime 모듈을 가져 와서 xaxis를 만들 수 있습니까? 이 같은팬더에서 Bokeh datetime 사용

import pandas as pd 
from bokeh.plotting import figure, output_file, show 
from bokeh.sampledata.stocks import AAPL 

df = pd.DataFrame(AAPL) 
df['date'] = pd.to_datetime(df['date']) 

output_file("datetime.html") 

# create a new plot with a datetime axis type 
p = figure(plot_width=800, plot_height=250, x_axis_type="datetime") 

p.line(df['date'], df['close'], color='navy', alpha=0.5) 

show(p) 

내가 노력하고 뭔가 : 보케 문서에서

는이 보여

from bokeh.io import curdoc 
from bokeh.models import ColumnDataSource, DatetimeTickFormatter 
from bokeh.plotting import figure 
from datetime import datetime 

p = figure(plot_height=400, plot_width=1200, x_axis_type="datetime") 

p.xaxis.formatter = DatetimeTickFormatter(hours=["%H:%M:%S"],days=["%H:%M:%S"],months=["%H:%M:%S"],years=["%H:%M:%S"]) 

코드 실행을하지만 난 어떤 X 또는 Y 축에 표시되지 않습니다. 사용 팬더없이

+0

는 두 번째 블록은 * 모든 * 코드 당신이하려고하는 것을 의미합니까? 이렇게하면 완전히 빈 플롯이 생성됩니다 (즉,보고있는 내용이 완전히 예상 됨). 기본적으로 Bokeh는 데이터를 기반으로 자동 범위를 지정합니다. 데이터를 설정하지 않으면 범위 => 빈 그림을 설정할 수 없습니다. 축만있는 빈 플롯을 원하면 범위를 수동으로 설정할 수 있습니다. – bigreddot

답변

0

:

from bokeh.plotting import figure, output_file, show 
from bokeh.models import DatetimeTickFormatter 
from bokeh.sampledata.stocks import AAPL 
import datetime 

output_file("datetime.html") 

AAPL['date'] = [datetime.datetime.strptime(x, "%Y-%m-%d").date() for x in AAPL['date']] 

p = figure(plot_width=800, plot_height=250) 
p.xaxis[0].formatter = DatetimeTickFormatter() 

p.line(AAPL['date'], AAPL['close'], color='navy', alpha=0.5) 

show(p)