โบเก้ - เลย์เอาต์

การแสดงภาพโบเก้สามารถจัดวางได้อย่างเหมาะสมในตัวเลือกเค้าโครงต่างๆ เค้าโครงเหล่านี้ตลอดจนโหมดการปรับขนาดส่งผลให้พล็อตและวิดเจ็ตปรับขนาดโดยอัตโนมัติตามขนาดของหน้าต่างเบราว์เซอร์ เพื่อให้มีลักษณะที่สอดคล้องกันรายการทั้งหมดในเค้าโครงต้องมีโหมดการปรับขนาดเดียวกัน วิดเจ็ต (ปุ่มเมนู ฯลฯ ) จะถูกเก็บไว้ในกล่องวิดเจ็ตแยกต่างหากและไม่ได้อยู่ในรูปพล็อต

เลย์เอาต์ประเภทแรกคือเลย์เอาต์คอลัมน์ซึ่งแสดงพล็อตตัวเลขในแนวตั้ง column() function ถูกกำหนดไว้ใน bokeh.layouts โมดูลและใช้ลายเซ็นต่อไปนี้ -

from bokeh.layouts import column
col = column(children, sizing_mode)

children - รายชื่อพล็อตและ / หรือวิดเจ็ต

sizing_mode- กำหนดวิธีการปรับขนาดรายการในเค้าโครง ค่าที่เป็นไปได้คือ "fixed", "stretch_both", "scale_width", "scale_height", "scale_both" ค่าเริ่มต้นคือ "คงที่"

รหัสต่อไปนี้จะสร้างตัวเลข Bokeh สองตัวและวางไว้ในเค้าโครงคอลัมน์เพื่อให้แสดงในแนวตั้ง ร่ายมนตร์เส้นที่แสดงถึงความสัมพันธ์ไซน์และคอสระหว่างชุดข้อมูล x และ y จะแสดงในแต่ละรูป

from bokeh.plotting import figure, output_file, show
from bokeh.layouts import column
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
y1 = np.sin(x)
y2 = np.cos(x)
fig1 = figure(plot_width = 200, plot_height = 200)
fig1.line(x, y1,line_width = 2, line_color = 'blue')
fig2 = figure(plot_width = 200, plot_height = 200)
fig2.line(x, y2,line_width = 2, line_color = 'red')
c = column(children = [fig1, fig2], sizing_mode = 'stretch_both')
show(c)

เอาต์พุต

ในทำนองเดียวกันเค้าโครงแถวจะจัดเรียงพล็อตในแนวนอนซึ่ง row() functionตามที่กำหนดไว้ในโมดูล bokeh.layouts ถูกใช้ อย่างที่คุณคิดมันต้องใช้สองอาร์กิวเมนต์ (คล้ายกับcolumn() function) - children และ sizing_mode

เส้นโค้งไซน์และคอสตามที่แสดงในแนวตั้งในแผนภาพด้านบนจะแสดงในแนวนอนในรูปแบบแถวพร้อมรหัสต่อไปนี้

from bokeh.plotting import figure, output_file, show
from bokeh.layouts import row
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
y1 = np.sin(x)
y2 = np.cos(x)
fig1 = figure(plot_width = 200, plot_height = 200)
fig1.line(x, y1,line_width = 2, line_color = 'blue')
fig2 = figure(plot_width = 200, plot_height = 200)
fig2.line(x, y2,line_width = 2, line_color = 'red')
r = row(children = [fig1, fig2], sizing_mode = 'stretch_both')
show(r)

เอาต์พุต

แพ็คเกจ Bokeh ยังมีเค้าโครงตาราง มันมีตัวเลขพล็อตหลายรายการ (เช่นเดียวกับวิดเจ็ต) ในตารางสองมิติของแถวและคอลัมน์ gridplot() function ในโมดูล bokeh.layouts จะส่งคืนกริดและแถบเครื่องมือแบบรวมเดียวซึ่งอาจถูกจัดตำแหน่งด้วยความช่วยเหลือของคุณสมบัติ toolbar_location

ซึ่งแตกต่างจากเค้าโครงแถวหรือคอลัมน์ที่แต่ละพล็อตแสดงแถบเครื่องมือของตัวเอง ฟังก์ชัน grid () ก็ใช้พารามิเตอร์ children และ sizing_mode เช่นกันโดยที่ children เป็นลิสต์ของรายการ ตรวจสอบให้แน่ใจว่ารายการย่อยแต่ละรายการมีขนาดเดียวกัน

ในรหัสต่อไปนี้ความสัมพันธ์ที่แตกต่างกันสี่แบบระหว่างชุดข้อมูล x และ y จะถูกพล็อตในตารางสองแถวและสองคอลัมน์

from bokeh.plotting import figure, output_file, show
from bokeh.layouts import gridplot
import math
x = list(range(1,11))

y1 = x
y2 =[11-i for i in x]
y3 = [i*i for i in x]
y4 = [math.log10(i) for i in x]

fig1 = figure(plot_width = 200, plot_height = 200)
fig1.line(x, y1,line_width = 2, line_color = 'blue')
fig2 = figure(plot_width = 200, plot_height = 200)
fig2.circle(x, y2,size = 10, color = 'green')
fig3 = figure(plot_width = 200, plot_height = 200)
fig3.circle(x,y3, size = 10, color = 'grey')
fig4 = figure(plot_width = 200, plot_height = 200, y_axis_type = 'log')
fig4.line(x,y4, line_width = 2, line_color = 'red')
grid = gridplot(children = [[fig1, fig2], [fig3,fig4]], sizing_mode = 'stretch_both')
show(grid)

เอาต์พุต