2015-01-18 14 views
5

wiem, że mogę zrobić skal logarytmicznych z bokeh używając API wydrukiem:Bokeh logarytmiczna skala na wykresie słupkowym

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' 
) 

Jednak nie mogę dowiedzieć się, jak uzyskać ten stosuje się do wysokiego poziomu tych wykresów jako Bokeh.charts.Bar. Generalnie mam wiele problemów z grokowaniem, co do relacji między Chart i figure. Czy ktoś może wskazać mi jakąś dokumentację na ten temat lub wyjaśnić, jak modyfikować rzeczy, które są widoczne tylko poprzez rysunek i mieć wpływ na mój wykres.

Odpowiedz

3

ja konkretnie zamierza zaktualizować dokumentację opisującą różne API bokeh w tym tygodniu, ale teraz, trzy Bokeh API rosnące od „poziomu”:

  • modeli interfejs: najniższy poziom API warstwa bazowa serializacji należy umieścić wszystko razem wszystko ręczne
  • znaki interfejs (bokeh.plotting) średni poziom API łatwo tworzyć działki/figury skupionych wokół glifĂłw wizualnych z cech związanych z danymi
  • wykresy Interfejs (bokeh.charts): wysoki poziom API dla standardowych/schematycznych wykresów statystycznych, np. "BoxPlot" i "Histogram".

Nie ma szczególnych relacji pomiędzy figure i różne funkcje wykres, poza tym, że zarówno produkuje podklasy Plot jako wyjście.

Nie jestem pewien, czy obecnie istnieje możliwość dodania osi logu do wykresu słupkowego w interfejsie "wykresów" (co byłoby rozsądną funkcją do dodania). Jednak proste byłoby wykonanie "pudełka" za pomocą "środkowego" interfejsu "glify" przy użyciu glifów rect lub rect. Oto krótki przykład:

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

Jak mogę wykreślić twój kod z tymi parametrami: 'left = [0, 4, 2], right = [1,5,3]'? Dlatego chcę, aby x_axis nie było sortowane. I w twoim kodzie chcę, aby najwyższa wartość ('10 ** 8') była ostatnia. Dziękuję Ci!! – ragesz

+0

Możesz podać wartości w dowolnej kolejności. Napisałeś odpowiedź w swoim pytaniu. – bigreddot

+0

OK, masz rację! (Nie byłam wystarczająco jasna ...) Mój problem polega na tym, że mam (numeryczne) identyfikatory na osi X i chcę posortowaną tablicę słupkową, więc powiedzmy "moja_wartośd = 15" przy "ID = 0", ' my_value = 10' at 'ID = 2' i 'my_value = 5' at' ID = 1'. Tak więc chcę, aby oś X wyglądała następująco: '0-2-1' i oś Y wyglądają tak:' 15-10-5'. Czy to możliwe? – ragesz

Powiązane problemy