【问题标题】:Aligning a Bokeh plot. (Python)对齐散景图。 (Python)
【发布时间】:2020-06-27 03:36:32
【问题描述】:

我实际上是 Python 的 Bokeh 库的初学者。

我正在绘制一个简单的散点图,如下所示:

from bokeh.io import show
from bokeh.plotting import figure
plot = figure()
plot.circle(x=[1,2,3,4,5],y=[10,7,2,5,9],size=10)
show(plot)

上面的代码打开一个 html 页面,该页面与屏幕左侧对齐。

有没有办法使绘图与中心对齐?

其实我看到了figure方法的一个属性align。

我将它设置为“中心”,但什么也没发生。

谁能帮忙?

【问题讨论】:

  • 尝试在figure()中设置sizing_mode='scale_width'
  • 这实际上拉伸了绘图以适应屏幕宽度。@icecity96 尝试使用 margin 属性。不是一个完美的解决方案!

标签: bokeh


【解决方案1】:

好吧,我遇到了这个问题,我找到了一个可行的解决方案: 您需要创建一个模板来覆盖绘图父 div 的边距属性>

template = """
{% block postamble %}
<style>
.bk-root .bk {
    margin: 0 auto !important;
}
</style>
{% endblock %}
"""

.bk-root .bk 定义绘图的父 div。 .bk-root 也被指定,因为这将防止特定样式忽略此属性(与样式重要性评估顺序有关)。 !important; 是必需的,因为该 div 的边距属性是内联定义的。内联属性只能用这个 !important 标签覆盖。

在此之后,您将需要两个导入和两个函数调用:

from bokeh.io import save
from bokeh.util.browser import view
save(your_plot, template=template)
view("digits.html")

保存功能会将模板应用到您的 html 文档。视图功能将在浏览器中打开一个新选项卡,其中您的绘图居中。

如果此解决方案不起作用,您应该从浏览器中检查 html 代码并找出您应该修改哪个 div 类的 margin 属性,但一般概念将保持不变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多