2017-06-28 6 views
0

Wie kann ich this example zwischen linearer und logarithmischer Skalierung umstellen?Umschalten zwischen linearer und logarithmischer Skalierung in Bokeh

Hintergrund: Ich bin ein langjähriger Matplotlib-Benutzer, neuer Bokeh-Benutzer. Einer der Hauptgründe, warum ich Bokeh benutze, ist die Interaktivität, die es bietet. Ein großer Teil davon wäre die Möglichkeit, in Plots zwischen linearen und logarithmischen Skalen umzuschalten (was ich in meinem täglichen Leben wirklich brauche). Diese Frage wurde im Jahr 2015 an here adressiert und zu der Zeit gab es keine klare Antwort.

Aber es ist 2 Jahre später und ich frage mich, ob es eine Möglichkeit gibt, eine Schaltfläche/ein Widget aufzunehmen, um für die X- und die Y-Achse von linear zu logarithmischem Maßstab zu wechseln. Wenn nicht, bin ich mir sicher, dass es eine saubere Möglichkeit gibt, dieses Verhalten in irgendeiner Weise zu simulieren (ohne zwei Diagramme nebeneinander zu haben).

+1

Nun, dass "Scale" ein öffentliches Modell anstelle von versteckten Implementierungsdetails ist, ist dies viel vernünftiger zu betrachten. Bitte zögern Sie nicht, ein GitHub Problem zu öffnen, um es zu diskutieren https://github.com/bokeh/bokeh/issues Bis dahin ist die Antwort unten wahrscheinlich die beste Problemumgehung. – bigreddot

+0

@bigreddot Begonnen es [hier] (https://github.com/bokeh/bokeh/issues/6575) wenn Sie interessiert sind – TomCho

+0

Yup, ich habe es kommentiert :) – bigreddot

Antwort

1

Eine mögliche Lösung ist die Put sowohl lineare als auch Grundstücke in Tabs log wie:

from bokeh.plotting import figure, show 
from bokeh.models.widgets import Tabs, Panel 

panels = [] 

for axis_type in ["linear", "log"]: 
    fig = figure(x_axis_type=axis_type, y_axis_type=axis_type) 
    fig.scatter(x=[1,10,100,1000], y=[1,10,100,1000]) 

    panel = Panel(child=fig, title=axis_type) 
    panels.append(panel) 

tabs = Tabs(tabs=panels) 

show(tabs) 

Alternativ verdrahten Sie eine bokeh.models.widgets.Button mit einem CustomJS Rückruf auf, die die Handlung ändert reicht, aber das scheint über etwas leichter mir.

Verwandte Themen