Computer >> Máy Tính >  >> Lập trình >> Python

Thư viện Bokeh có thể được sử dụng như thế nào để trực quan hóa các biểu đồ thanh xếp chồng lên nhau trong Python?


Bokeh là một gói Python giúp trực quan hóa dữ liệu. Nó là một dự án mã nguồn mở. Bokeh hiển thị âm mưu của nó bằng HTML và JavaScript. Điều này cho thấy rằng nó hữu ích khi làm việc với các trang tổng quan dựa trên web.

Bokeh chuyển đổi nguồn dữ liệu thành tệp JSON. Tệp này được sử dụng làm đầu vào cho BokehJS, là một thư viện JavaScript. BokehJS này được viết bằng TypeScript giúp hiển thị hình ảnh trực quan trên các trình duyệt hiện đại.

Matplotlib và Seaborn tạo ra các ô tĩnh, trong khi Bokeh tạo ra các ô tương tác. Điều này có nghĩa là khi người dùng tương tác với những âm mưu này, chúng sẽ thay đổi theo.

Các lô có thể được nhúng dưới dạng đầu ra của các ứng dụng web hỗ trợ Flask hoặc Django. Sổ ghi chép Jupyter cũng có thể được sử dụng để hiển thị các ô này.

Cài đặt Bokeh trên Windows Command Prompt

pip3 install bokeh

Cài đặt Bokeh trên lời nhắc Anaconda

conda install bokeh

Có thể sử dụng hàm ‘vbar_stack’ hoặc ‘hbar_stack’ để tạo biểu đồ thanh xếp chồng lên nhau.

Ví dụ

from bokeh.plotting import figure, output_file, show
labs = ['label_1', 'label_2', 'label_3']
vals = ['val_1','val_2','val_3']
my_data = {'labs':labs,
   'val_1':[2,5,11],
   'val_2':[34,23,1],
   'val_3':[25, 34, 23]
}
cols = ['red','cyan','navy']
fig = figure(x_range = labs, plot_width = 300, plot_height = 300)
fig.vbar_stack(vals, x = 'labs', source = my_data, color = cols,width = 0.5)
show(fig)

Đầu ra

Thư viện Bokeh có thể được sử dụng như thế nào để trực quan hóa các biểu đồ thanh xếp chồng lên nhau trong Python?

Giải thích

  • Các gói bắt buộc được nhập và được đặt bí danh.

  • Hàm figure được gọi cùng với chiều rộng và chiều cao của ô.

  • Dữ liệu được xác định trong danh sách.

  • Hàm 'output_file' được gọi để đề cập đến tên của tệp html sẽ được tạo.

  • Hàm ‘vbar_stack’ có trong Bokeh được gọi cùng với dữ liệu.

  • Hàm "show" được sử dụng để hiển thị âm mưu.