Bokeh布局 | 互動式數據可視化庫Bokeh設計布局

Bokeh包含用於繪圖和小部件的多種布局選項,可以快速創建互動式數據應用程序。 布局的核心是三個核心對象是Row,Column和WidgetBox。 雖然可以直接使用這些模型,但建議使用布局函數row(),column()和widgetbox()。

為了使用布局獲得最佳結果,需要記住兩點:

所有項目必須具有相同的大小模式。

小工具應該放在小工具箱內。

Columns

要以垂直方式顯示繪圖或小部件,請使用column()函數:

from bokeh.io import output_file, show

from bokeh.layouts import column

from bokeh.plotting import figure

output_file("layout.html")

x = list(range(11))

y0 = x

y1 = [10 - i for i in x]

y2 = [abs(i - 5) for i in x]

# 創建一個圖表

s1 = figure(plot_width_=250, plot_height=250, title=None)

s1.circle(x, y0, size=10, color="navy", alpha=0.5)

# 創建另一個圖表

s2 = figure(plot_width_=250, plot_height=250, title=None)

s2.triangle(x, y1, size=10, color="firebrick", alpha=0.5)

# 再創建一個圖表

s3 = figure(plot_width_=250, plot_height=250, title=None)

s3.square(x, y2, size=10, color="olive", alpha=0.5)

# 垂直展示結果

show(column(s1, s2, s3))

Cows

要水平顯示圖形,請使用row()函數。

from bokeh.io import output_file, show

from bokeh.layouts import row

from bokeh.plotting import figure

output_file("layout.html")

x = list(range(11))

y0 = x

y1 = [10 - i for i in x]

y2 = [abs(i - 5) for i in x]

# 創建一個圖表

s1 = figure(plot_width_=250, plot_height=250, title=None)

s1.circle(x, y0, size=10, color="navy", alpha=0.5)

# 創建另一個圖表

s2 = figure(plot_width_=250, plot_height=250, title=None)

s2.triangle(x, y1, size=10, color="firebrick", alpha=0.5)

# 再創建一個圖表

s3 = figure(plot_width_=250, plot_height=250, title=None)

s3.square(x, y2, size=10, color="olive", alpha=0.5)

# 水平展示結果

show(row(s1, s2, s3))

Widgets

使用widgetbox()函數來布局一組小部件,相當於添加一個帶按鈕的工具箱。

from bokeh.io import output_file, show

from bokeh.layouts import widgetbox

from bokeh.models.widgets import Button, RadioButtonGroup, Select, Slider

output_file("layout_widgets.html")

# 添加一些小部件

slider = Slider(start=0, end=10, value=1, step=.1, title="Slider")

button_group = RadioButtonGroup(labels=["Option 1", "Option 2", "Option 3"], active=0)

select = Select(title="Option:", value="foo", options=["foo", "bar", "baz", "quux"])

button_1 = Button(label="Button 1")

button_2 = Button(label="Button 2")

# 展示結果

show(widgetbox(button_1, slider, button_group, select, button_2, width_=300))

推薦閱讀:

今日數據行業日報(2017.03.17)
分析泰坦尼克號遇難數據 - 張然
0基礎包教會 | 數據分析環境搭建:jupyter配置python & r kernel
Numpy和Pandas---數據分析的梯子
新手如何快速成為數據分析師?

TAG:數據分析 | 可視化 |