2017-06-20 9 views
2

私はJupyterノートでbqplotを使っていくつかのプロットを作成しました。プロットは、JupyterウィジェットのHBoxとVBoxのレイアウト属性を使用して配置されています。しかし、私はどのようにサブプロットの行の間にきついレイアウトを得るために取り組むことができません。より厳しいレイアウトを得るための最良の方法は何ですか?Jupyterでのbqplotの配置のタイトな設定

以下は、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

答えて

2

ソリューションです:

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

0

HBoxVBox ipywidgets Layoutインスタンスをとります。そのプロパティを変更することができます。ここで

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

+0

はい。私はBoxウィジェットを試して、さまざまな設定を試しましたが、うまく動作しませんでした。私は明日別のプレイをします。 – DougR

+1

右クリックしてinspectを押して、正しい設定を見つけるためのショートカットとしてCSSのボックスで直接再生してください。 https://css-tricks.com/snippets/css/a-guide-to-flexbox/ – Drew

+0

ドリュー、ヒントをいただきありがとうございます。しかし、私はまだそれを動作させることができませんでした。私は負のマージンで遊んでいましたが、これは特定の構成ではうまくいきます。しかし、その方法は、異なるレイアウト(サブプロットの数、ジュピターセルの幅など)を使用する場合に一貫していません。私はipywidgets gitterチャンネルで人々に尋ねるかもしれません。 – DougR

関連する問題