【问题标题】:Python: Bokeh Plotting Setting the Vertical Axis (Y-axis) Using Function as ScalePython:Bokeh Plotting 使用函数作为比例设置垂直轴(Y 轴)
【发布时间】:2023-03-22 08:02:01
【问题描述】:

我想使用 Bokeh 创建一个威布尔概率图。 根据参考资料(如下链接),

https://www.itl.nist.gov/div898/handbook/eda/section3/weibplot.htm

威布尔概率图的 y 轴有一个带有刻度的轴:ln(-ln(1-p))。 假设我定义了一个函数(它是反函数),

import numpy as np

def forward(X):
    return np.log(-np.log(1 - X))

def inverse(Y):
    return 1 - np.exp(-np.exp(Y))

使用 matplotlib.pyplot(来自 https://matplotlib.org/stable/gallery/scales/scales.html),我可以使用这些函数在 pyplot 上设置 y 轴的比例,

import matplotlib.pyplot as plt

fig, ax = .........
ax.set_yscale('function', functions=(forward, inverse))

如何在 Bokeh 上实现这一点(使用函数设置 y 轴比例)?

【问题讨论】:

    标签: python python-3.x matplotlib data-visualization bokeh


    【解决方案1】:

    缩放应用程序实际上发生在 JavaScript 中,在浏览器中,而不是在任何 Python 代码中。因此,没有 Python 函数与 Bokeh 相关的问题。从 2.3.1 版开始,BokehJS 客户端库仅支持分类、线性和(标准)对数刻度。

    【讨论】:

    • 非常感谢您的回答。所以可能,我会使用其他库。由于我目前正在网页中开发数据可视化,您对其他可以支持使用自定义(使用函数)轴进行绘图并以 HTML 格式输出的库有什么建议吗?我尝试使用 mpld3,但它也无法识别我的轴(使用函数)。
    • 我没有。 Mpld3(顺便说一句,这是一个已经死了 5 年以上的无人维护的项目)也有同样的情况。 Python 代码会预先生成一个静态数据结构,然后将其发送到执行实际渲染和交互的 JS 客户端库。 Plotly 或 Altair 也是如此。为了完整起见,我会提到 Bokeh 可以支持自定义 JS 扩展,但创建自定义扩展比例将是一种高级用法:docs.bokeh.org/en/latest/docs/user_guide/extensions.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多