2014-10-27 49 views
8

我正在尋找一種方式來創建一個情節像背景虛化的相當於matplotlib次要情節

fig, (ax0, ax1) = plt.subplots(nrows=2, sharex=True) 

將在matplotlib,然後可以通過ax0ax1解決做包含幾個次要情節。有沒有辦法在Bokeh中做類似的事情?在景examples畫廊我只發現單個地塊。

+1

怎麼樣[IRIS Splom(HTTP://bokeh.pydata。 org/docs/gallery/iris_splom.html)在圖庫中的例子? – wflynny 2014-10-27 21:26:17

+0

感謝@wflynny看起來很有前途。在預覽中,它看起來像一個單一的情節。 – greole 2014-10-27 21:33:11

+2

當前'GridPlot'在HTML表格中創建獨立的圖,所以如果您預覽/保存它,您將得到每個單獨子圖的預覽。還計劃提供一個佈局在單個畫布上的網格圖,以便預覽包含所有的子圖。 Bokeh 0.8將是此功能的估計值。 – bigreddot 2014-12-01 17:44:47

回答

7

我認爲你可以找到簡單的例子是:

import numpy as np 
import bokeh.plotting as bk_plotting 
import bokeh.models as bk_models 

# for the ipython notebook 
bk_plotting.output_notebook() 

# a random dataset 
data = bk_models.ColumnDataSource(data=dict(x=np.arange(10), 
              y1=np.random.randn(10), 
              y2=np.random.randn(10))) 

# defining the range (I tried with start and end instead of sources and couldn't make it work) 
x_range = bk_models.DataRange1d(sources=[data.columns('x')]) 
y_range = bk_models.DataRange1d(sources=[data.columns('y1', 'y2')]) 

# create the first plot, and add a the line plot of the column y1 
p1 = bk_models.Plot(x_range=x_range, 
        y_range=y_range, 
        title="", 
        min_border=2, 
        plot_width=250, 
        plot_height=250) 
p1.add_glyph(data, 
      bk_models.glyphs.Line(x='x', 
            y='y1', 
            line_color='black', 
            line_width=2)) 

# add the axes 
xaxis = bk_models.LinearAxis() 
p1.add_layout(xaxis, 'below') 
yaxis = bk_models.LinearAxis() 
p1.add_layout(yaxis, 'left') 

# add the grid 
p1.add_layout(bk_models.Grid(dimension=1, ticker=xaxis.ticker)) 
p1.add_layout(bk_models.Grid(dimension=0, ticker=yaxis.ticker)) 

# add the tools 
p1.add_tools(bk_models.PreviewSaveTool()) 

# create the second plot, and add a the line plot of the column y2 
p2 = bk_models.Plot(x_range=x_range, 
        y_range=y_range, 
        title="", 
        min_border=2, 
        plot_width=250, 
        plot_height=250) 
p2.add_glyph(data, 
      bk_models.glyphs.Line(x='x', 
            y='y2', 
            line_color='black', 
            line_width=2)) 



# add the x axis 
xaxis = bk_models.LinearAxis() 
p2.add_layout(xaxis, 'below') 

# add the grid 
p2.add_layout(bk_models.Grid(dimension=1, ticker=xaxis.ticker)) 
p2.add_layout(bk_models.Grid(dimension=0, ticker=yaxis.ticker)) 

# add the tools again (it's only displayed if added to each chart) 
p2.add_tools(bk_models.PreviewSaveTool()) 

# display both 
gp = bk_plotting.GridPlot(children=[[p1, p2]]) 
bk_plotting.show(gp) 

產生輸出:

enter image description here