在散景中线性和对数刻度之间切换

发布于 2021-01-29 15:05:13

如何重新生成此示例,在线性刻度和对数刻度之间切换?

背景:我是Matplotlib的长期用户,最近是Bokeh用户。我开始使用Bokeh的主要原因之一是因为它提供了交互性。其中很大一部分是能够在绘图中的线性刻度和对数刻度之间切换的能力(这是我日常生活中真正需要的东西)。这个问题是不客气这里在2015年的时候也没有明确的答案。

但是,这是2年后的事,我想知道是否有一种方法可以包含一个按钮/小部件,以便将x轴和y轴的比例从线性更改为对数刻度。如果没有,我肯定有一种干净的方法可以某种方式模拟这种行为(没有并排放置两个图)。

关注者
0
被浏览
85
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    一种可能的解决方案是将线性图和对数图都放入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回调来连接,以更改打印范围,但是对我来说,上面的操作似乎更容易一些。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看