Hướng dẫn dùng bokeh javascript python

Các gói Bokeh là một thư viện trực quan tương tác sử dụng các trình duyệt web để trình bày của mình. Mục tiêu của nó là cung cấp đồ họa trong tĩnh mạch của D3.js trông thanh lịch và dễ xây dựng. Bokeh hỗ trợ các tập dữ liệu lớn và phát trực tuyến. Bạn có thể sẽ sử dụng thư viện này để tạo các ô / đồ thị. Một trong những đối thủ cạnh tranh chính của nó dường như là Plotly .

Lưu ý: Đây sẽ không phải là một hướng dẫn chuyên sâu về thư viện Bokeh vì số lượng biểu đồ và hình ảnh khác nhau mà nó có khả năng là khá lớn. Thay vào đó, mục đích của bài viết là cung cấp cho bạn một hương vị của những gì thư viện thú vị này có thể làm.

Hãy dành một chút thời gian và cài đặt nó. Cách dễ nhất để làm như vậy là sử dụng pip hoặc conda. Đây là cách bạn có thể sử dụng pip:

pip install bokeh

Điều này sẽ cài đặt Bokeh và tất cả các phụ thuộc của nó. Bạn có thể muốn cài đặt Bokeh vào virtualenv vì điều này, nhưng điều đó tùy thuộc vào bạn. Bây giờ hãy xem một ví dụ đơn giản. Lưu mã sau vào một tệp với bất kỳ tên nào bạn cho là phù hợp.

from bokeh.plotting import figure, output_file, show

output_file("/path/to/test.html")

x = range(1, 6)
y = [10, 5, 7, 1, 6]
plot = figure(title='Line example', x_axis_label='x', y_axis_label='y')
plot.line(x, y, legend='Test', line_width=4)
show(plot)

Ở đây chúng tôi chỉ cần nhập một vài mục từ thư viện Bokeh. Chúng tôi chỉ cho nó biết nơi để lưu đầu ra. Bạn sẽ lưu ý rằng đầu ra là HTML. Sau đó, chúng tôi tạo một số giá trị cho trục x và y để chúng tôi có thể tạo cốt truyện. Sau đó, chúng tôi thực sự tạo ra đối tượng hình và đặt cho nó một tiêu đề và nhãn cho hai trục. Cuối cùng, chúng tôi vẽ đường thẳng, cho nó một huyền thoại và độ rộng đường và hiển thị cốt truyện. Lệnh show sẽ thực sự mở cốt truyện của bạn trong trình duyệt mặc định của bạn. Cuối cùng bạn sẽ thấy một cái gì đó như thế này:

Hướng dẫn dùng bokeh javascript python

Bokeh cũng hỗ trợ Jupyter Notebook với thay đổi duy nhất là bạn sẽ cần sử dụng output_notebook thay vì output_file .

Hướng dẫn bắt đầu nhanh Bokeh có một ví dụ gọn gàng về một loạt các sóng hình sin trên một ô lưới. Tôi đã giảm ví dụ xuống một chút chỉ còn một sóng hình sin. Lưu ý rằng bạn sẽ cần cài đặt NumPy cho ví dụ sau để hoạt động chính xác:

import numpy as np

from bokeh.layouts import gridplot
from bokeh.plotting import figure, output_file, show

N = 100
x = np.linspace(0, 4*np.pi, N)
y0 = np.sin(x)

output_file('sinewave.html')

sine = figure(width=500, plot_height=500, title='Sine')
sine.circle(x, y0, size=10, color="navy", alpha=0.5)

p = gridplot([[sine]], toolbar_location=None)

show(p)

Sự khác biệt chính giữa ví dụ này và ví dụ trước là chúng tôi đang sử dụng NumPy để tạo các điểm dữ liệu và chúng tôi sẽ đưa hình của mình vào trong một ô lưới thay vì chỉ vẽ hình. Khi bạn chạy mã này, bạn sẽ kết thúc với một cốt truyện trông như thế này:

Hướng dẫn dùng bokeh javascript python

Nếu bạn không thích các vòng tròn, thì bạn sẽ rất vui khi biết rằng Bokeh hỗ trợ các hình dạng khác, chẳng hạn như hình vuông, hình tam giác và một số hình khác.

Kết thúc

Dự án Bokeh thực sự thú vị và cung cấp API đơn giản, dễ sử dụng để tạo biểu đồ, sơ đồ và trực quan hóa dữ liệu khác của bạn. Các tài liệu được kết hợp khá tốt và bao gồm rất nhiều ví dụ thể hiện những gì gói này có thể làm cho bạn. Rất đáng để đọc lướt qua tài liệu để bạn có thể thấy một số biểu đồ khác trông như thế nào và các ví dụ mã ngắn như thế nào tạo ra kết quả tốt như vậy. Điều hấp dẫn duy nhất của tôi là Bokeh không có cách lưu tệp hình ảnh theo chương trình. Đây dường như là một lỗi lâu dài mà họ đã cố gắng khắc phục trong một vài năm nay. Hy vọng họ sớm tìm ra cách hỗ trợ tính năng đó. Nếu không, tôi nghĩ rằng nó thực sự mát mẻ!

8 hữu ích 0 bình luận 7.9k xem chia sẻ

các gói bokeh là một thư viện trực quan tương tác sử dụng các trình duyệt web để trình bày của mình. mục tiêu của nó là cung cấp đồ họa theo kiểu d3.js trông thanh lịch và dễ xây dựng. bokeh hỗ trợ các tập dữ liệu lớn và truyền trực tuyến. bạn có thể sẽ sử dụng thư viện này để tạo các biểu đồ / đồ thị. một trong những đối thủ cạnh tranh chính của nó dường như có âm mưu .

lưu ý: đây sẽ không phải là hướng dẫn chuyên sâu về thư viện bokeh vì số lượng các biểu đồ và hình ảnh trực quan khác nhau mà nó có thể thực hiện được là khá lớn. thay vào đó, mục đích của bài viết là cung cấp cho bạn những gì mà thư viện thú vị này có thể làm được.

hãy dành một chút thời gian và cài đặt nó. cách dễ nhất để làm như vậy là sử dụng pip hoặc conda. đây là cách bạn có thể sử dụng pip:

pip install bokeh

điều này sẽ cài đặt bokeh và tất cả các phụ thuộc của nó. bạn có thể muốn cài đặt bokeh vào virtualenv vì điều này, nhưng điều đó tùy thuộc vào bạn. bây giờ chúng ta hãy kiểm tra một ví dụ đơn giản. lưu đoạn mã sau vào một tệp với bất kỳ tên nào bạn cho là phù hợp.

from bokeh.plotting import figure, output_file, show

output_file("/path/to/test.html")

x = range(1, 6)
y = [10, 5, 7, 1, 6]
plot = figure(title='line example', x_axis_label='x', y_axis_label='y')
plot.line(x, y, legend='test', line_width=4)
show(plot)

ở đây chúng tôi chỉ nhập một vài mục từ thư viện bokeh. chúng tôi chỉ cho nó biết nơi lưu đầu ra. bạn sẽ lưu ý rằng đầu ra là html. sau đó chúng tôi tạo một số giá trị cho các trục x và y để chúng tôi có thể tạo biểu đồ. sau đó chúng tôi thực sự tạo đối tượng hình và đặt cho nó một tiêu đề và nhãn cho hai trục. cuối cùng, chúng tôi vẽ đường thẳng, cung cấp cho nó một chú giải và chiều rộng dòng và hiển thị âm mưu. lệnh hiển thị sẽ thực sự mở cốt truyện của bạn trong trình duyệt mặc định của bạn. cuối cùng bạn sẽ thấy một cái gì đó như thế này:

Hướng dẫn dùng bokeh javascript python

bokeh cũng hỗ trợ sổ ghi chép jupyter với thay đổi duy nhất là bạn sẽ cần sử dụng output_notebook thay vì output_file .

hướng dẫn bắt đầu nhanh bokeh có một ví dụ rõ ràng về một loạt các sóng sin trên một biểu đồ lưới. tôi đã giảm ví dụ xuống một chút chỉ còn một sóng hình sin. lưu ý rằng bạn sẽ cần cài đặt numpy để ví dụ sau hoạt động chính xác:

import numpy as np

from bokeh.layouts import gridplot
from bokeh.plotting import figure, output_file, show

n = 100
x = np.linspace(0, 4*np.pi, n)
y0 = np.sin(x)

output_file('sinewave.html')

sine = figure(width=500, plot_height=500, title='sine')
sine.circle(x, y0, size=10, color="navy", alpha=0.5)

p = gridplot([[sine]], toolbar_location=none)

show(p)

sự khác biệt chính giữa ví dụ này và ví dụ trước là chúng tôi đang sử dụng numpy để tạo ra các điểm dữ liệu và chúng tôi đang đưa hình của mình vào bên trong một biểu đồ lưới thay vì chỉ vẽ chính hình đó. khi bạn chạy mã này, bạn sẽ kết thúc với một âm mưu trông giống như sau:

Hướng dẫn dùng bokeh javascript python

nếu bạn không thích hình tròn, thì bạn sẽ rất vui khi biết rằng bokeh hỗ trợ các hình dạng khác, chẳng hạn như hình vuông, hình tam giác và một số hình dạng khác.

gói lại

dự án bokeh thực sự thú vị và cung cấp một api đơn giản, dễ sử dụng để tạo đồ thị, biểu đồ và các hình ảnh trực quan khác về dữ liệu của bạn. tài liệu được tổng hợp khá tốt và bao gồm rất nhiều ví dụ cho thấy gói này có thể làm gì cho bạn. Rất đáng để bạn chỉ cần đọc lướt qua tài liệu để bạn có thể thấy một số biểu đồ khác trông như thế nào và các ví dụ mã ngắn như thế nào mà tạo ra kết quả tốt như vậy. mối quan tâm duy nhất của tôi là bokeh không có cách nào để lưu tệp hình ảnh theo chương trình. Đây dường như là một lỗi lâu dài mà họ đã cố gắng sửa chữa trong vài năm nay. hy vọng họ sẽ sớm tìm ra cách hỗ trợ tính năng đó. nếu không, tôi nghĩ rằng nó thực sự tuyệt vời!

0 hữu ích 0 bình luận 5.5k xem chia sẻ