在Jupyter中更严格的bqplot数字布局

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Jupyter中更严格的bqplot数字布局相关的知识,希望对你有一定的参考价值。

我使用bqplot在Jupyter笔记本中创建了几个图。这些图是使用Jupyter小部件HBox和VBox布局属性排列的。但是,我无法弄清楚如何在子图行之间获得紧密的布局。获得更严格布局的最佳方法是什么?

下面是在Jupyter笔记本中运行的Python代码示例。

import numpy as np
from bqplot import *
from IPython.display import javascript, display, clear_output
import ipywidgets as widgets

size = 100
scale = 100.
np.random.seed(0)
x_data = np.arange(size)
y_data = np.cumsum(np.random.randn(size)  * scale)

x_sc = LinearScale()
y_sc = LinearScale()

ax_x = Axis(label='X', scale=x_sc, grid_lines='solid')
ax_y = Axis(label='Y', scale=y_sc, orientation='vertical', grid_lines='solid')

line = Lines(x=x_data, y=x_data, scales={'x': x_sc, 'y': y_sc})

figy=[]
for i in range(2):
    figx=[]
    for j in range(3):
        figx.append(Figure(axes=[ax_x, ax_y], marks=[line], title='Example' + str(i*3+j), fig_margin = dict(top=30, bottom=10, left=20, right=20)))
    figy.append(widgets.HBox(figx)) 
display(widgets.VBox(figy, align_content = 'stretch'))

enter image description here

答案

这是一个解决方案:

import numpy as np
from bqplot import *
from IPython.display import Javascript, display, clear_output
import ipywidgets as widgets

size = 100
scale = 100.
np.random.seed(0)
x_data = np.arange(size)
y_data = np.cumsum(np.random.randn(size)  * scale)

x_sc = LinearScale()
y_sc = LinearScale()

ax_x = Axis(label='X', scale=x_sc, grid_lines='solid')
ax_y = Axis(label='Y', scale=y_sc, orientation='vertical', grid_lines='solid')

line = Lines(x=x_data, y=x_data, scales={'x': x_sc, 'y': y_sc})

fig_layout = widgets.Layout(width='auto', height='auto')

figy=[]
for i in range(2):
    figx=[]
    for j in range(3):
        figx.append(Figure(layout=fig_layout, axes=[ax_x, ax_y], marks=[line], title='Example' + str(i*3+j), fig_margin = dict(top=30, bottom=10, left=20, right=20)))
    figy.append(widgets.HBox(figx))
display(widgets.VBox(figy, align_content = 'stretch'))

基本上覆盖了图的layout属性。 bqplot数字具有固定的自然高度。

enter image description here

另一答案

每个HBoxVBox采取ipywidgets Layout实例。您可以修改它的属性。

http://ipywidgets.readthedocs.io/en/latest/examples/Widget%20Styling.html

以上是关于在Jupyter中更严格的bqplot数字布局的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PyQt5 布局中更紧密地对齐两个小部件?

bqplot:性能问题

在 Excel VBA 中更改为加拿大 (CDN) 法语数字格式

bqplot可视化中的流数据

自适应布局中更大 iPhone 的更高约束乘数

❤️bqplot让交互可视化更简单更灵活❤️