2015-01-18 13 views
5

Tôi biết rằng tôi có thể làm thang logarit với bokeh sử dụng API âm mưu:thang logarit Bokeh cho Bar biểu đồ

p = figure(
    tools="pan,box_zoom,reset,previewsave", 
    y_axis_type="log", y_range=[0.001, 10**22], title="log axis example", 
    x_axis_label='sections', y_axis_label='particles' 
) 

Tuy nhiên, tôi không thể tìm ra cách để có được điều này để áp dụng cho các bảng xếp hạng mức độ cao như vậy như Bokeh.charts.Bar. Nói chung, tôi gặp nhiều rắc rối khi mò mẫm mối quan hệ giữa một số Chartfigure. Bất cứ ai có thể chỉ cho tôi một số tài liệu về điều này hoặc giải thích làm thế nào để sửa đổi những điều mà chỉ tiếp xúc thông qua con số và có chúng ảnh hưởng đến biểu đồ của tôi.

Trả lời

3

Tôi đặc biệt sẽ cập nhật các tài liệu mô tả các API Bokeh khác nhau trong tuần này, nhưng bây giờ, ba API Bokeh trong thứ tự tăng dần của "cấp độ":

  • mô hình giao diện: API mức thấp nhất , lớp cơ sở serialization, phải đặt tất cả mọi thứ lại với nhau tất cả mọi thứ bằng tay
  • glyphs giao diện (bokeh.plotting): trung cấp API, dễ dàng tạo ra lô/số liệu tập trung vào glyphs thị giác với các thuộc tính gắn liền với dữ liệu
  • biểu đồ Giao diện (bokeh.charts): API cấp cao cho biểu đồ thống kê được đóng hộp/sơ đồ, ví dụ: "BoxPlot" và "Histogram".

Không có mối quan hệ cụ thể giữa figure và các chức năng biểu đồ khác nhau, ngoại trừ việc cả hai đều tạo lớp con là Plot làm đầu ra.

Tôi không chắc chắn hiện tại có thể thêm trục nhật ký vào ô Bar trong giao diện "biểu đồ" (đó có thể là một tính năng hợp lý để thêm). Tuy nhiên nó sẽ đơn giản để làm cho một hộp "bằng tay" bằng cách sử dụng giao diện "glyphs" giữa sử dụng rect hoặc quad glyphs. Dưới đây là ví dụ nhanh:

from bokeh.plotting import figure, output_file, show 

output_file("bars.html") 

p = figure(title="log bar example", y_axis_type="log") 

p.quad(
    bottom=0, top=[10**5, 10**8, 10**3], 
    left=[0, 2, 4], right=[1,3,5] 
) 

show(p) 
+0

Tôi có thể vẽ mã của bạn bằng thông số này: 'left = [0, 4, 2], right = [1,5,3]'? Vì vậy, tôi muốn x_axis không được sắp xếp. Và trong mã của bạn, tôi muốn giá trị cao nhất ('10 ** 8') là giá trị cuối cùng. Cảm ơn bạn!! – ragesz

+0

Bạn có thể cung cấp các giá trị theo bất kỳ thứ tự nào bạn muốn. Bạn đã viết câu trả lời trong câu hỏi của mình. – bigreddot

+0

OK, bạn đã đúng! (Tôi không đủ rõ ràng ...) Vấn đề của tôi là tôi có (số) ID-s ở trục x và tôi muốn biểu đồ Thanh được sắp xếp, vì vậy hãy nói 'my_value = 15' tại' ID = 0', ' my_value = 10' tại 'ID = 2' và' my_value = 5' tại 'ID = 1'. Vì vậy, tôi muốn trục x trông như thế này: '0-2-1' và trục y trông như thế này:' 15-10-5'. Có thể không? – ragesz

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