如何重新生成此示例,在线性刻度和对数刻度之间切换?
背景:我是Matplotlib的长期用户,最近是Bokeh用户。我开始使用Bokeh的主要原因之一是因为它提供了交互性。其中很大一部分是能够在绘图中的线性刻度和对数刻度之间切换的能力(这是我日常生活中真正需要的东西)。这个问题是不客气这里在2015年的时候也没有明确的答案。
但是,这是2年后的事,我想知道是否有一种方法可以包含一个按钮/小部件,以便将x轴和y轴的比例从线性更改为对数刻度。如果没有,我肯定有一种干净的方法可以某种方式模拟这种行为(没有并排放置两个图)。
一种可能的解决方案是将线性图和对数图都放入Tab中,例如:
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)
另外,您也可以bokeh.models.widgets.Button使用CustomJS回调来连接,以更改打印范围,但是对我来说,上面的操作似乎更容易一些。
bokeh.models.widgets.Button