2014-09-19 13 views
6

Tôi tự hỏi liệu có thể tạo ra đầu ra HTML tĩnh và các ô nội tuyến bằng Bokeh trong cùng một sổ ghi chép IPython hay không. Những gì tôi hiện đang thấy là khi tôi gọi output_notebook() hoặc output_file("myfile.html") Tôi bị mắc kẹt khi sử dụng phương thức đầu ra đó. Ví dụ, nếu ban đầu tôi sử dụng output_notebook, sau đó gọi output_file không tạo tệp đầu ra.Có thể chuyển đổi giữa output_notebook và output_file trong phiên máy tính xách tay IPython với Bokeh không?

+0

Một sửa lỗi: Có vẻ như ban đầu tôi có thể sử dụng 'output_file' theo sau là' output_notebook', nhưng không phải là cách khác xung quanh. –

Trả lời

2

reset_output() trước tới output_notebook hoặc output_file gọi làm việc tại ít nhất trong phiên bản 0.10.0.

# cell 1 
from bokeh.plotting import figure, show, output_notebook, output_file, reset_output 
p = figure(width=300, height=300) 
p.line(range(5), range(5)) 
output_notebook() 
show(p) 

# cell 2 
reset_output() 
output_file('foo.html') 
show(p) 

# cell 3 
reset_output() 
output_notebook() 
show(p) 

Chương trình thứ nhất và thứ ba trong sổ tay, chương trình thứ hai trong trình duyệt.

0

Bạn có thể tạo một HTML tĩnh bằng cách sử dụng đoạn mã sau (chuyển thể từ ví dụ here):

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, "my plot") 

with open('test.html', 'w') as f: 
    f.write(html) 

này hoạt động không gặp khó khăn trong kết hợp với output_notebook()

+0

Tôi có một tình huống tương tự, nhưng các ô của tôi được tạo ra trong một vòng lặp. Có thể chắp thêm từng ô để tạo một tệp html duy nhất với tất cả chúng trên đó không? – mad5245

+0

Xin lỗi vì đã bỏ qua. Tôi đã suy nghĩ cách khó khăn về điều đó. Để tham khảo, bạn chỉ cần thay đổi 'w' thành 'a' giống như với bất kỳ tệp nào. – mad5245

Các vấn đề liên quan