บทนำ
Bokeh เป็นแพ็กเกจ Python สำหรับ Visualization โค้ดเปิด ใช้ HTML และ JavaScript รенเดอร์กราฟ เหมาะกับ Dashboard บนเว็บ ใช้ร่วมกับ NumPy, Pandas ได้ สร้างกราฟโต้ตอบ Dashboard ได้
Dependencies
Numpy, Pillow, Jinja2, Packaging, Pyyaml, Six, Tornado, Python-dateutil
การติดตั้ง
pip3 install bokeh # หรือ conda install bokeh
ตัวอย่าง: Candlestick Chart จากข้อมูล MSFT
from math import pi
import pandas as pd
from bokeh.plotting import figure, output_file, show
from bokeh.sampledata.stocks import MSFT
my_df = pd.DataFrame(MSFT)[:35]
my_df["date"] = pd.to_datetime(my_df["date"])
inc = my_df.close > my_df.open
dec = my_df.open > my_df.close
w = 12*60*60*1000 # half day in ms
TOOLS = "pan,wheel_zoom,box_zoom,reset,save"
p = figure(x_axis_type="datetime", tools=TOOLS, plot_width=1000, title="Candlestick using MSFT data")
p.xaxis.major_label_orientation = pi/4
p.grid.grid_line_alpha = 0.3
# High-Low segments
p.segment(my_df.date, my_df.high, my_df.date, my_df.low, color="black")
# Up candles
p.vbar(my_df.date[inc], w, my_df.open[inc], my_df.close[inc], fill_color="#D5E1DD", line_color="black")
# Down candles
p.vbar(my_df.date[dec], w, my_df.open[dec], my_df.close[dec], fill_color="#F2583E", line_color="black")
output_file("candlestick.html", title="Candlestick Plot")
show(p)
หมายเหตุ: ต้องรัน bokeh.sampledata.download() ก่อนเพื่อดาวน์โหลดข้อมูลตัวอย่าง
ผลลัพธ์

คำอธิบาย
- นำเข้าแพ็กเกจและตั้งชื่อย่อ
- ข้อมูล MSFT มาจาก bokeh.sampledata
- แปลงคอลัมน์ date เป็น datetime
- กำหนดเงื่อนไขขึ้น (inc) และลง (dec)
- สร้าง Figure กำหนด tools, ขนาด, title
- ใช้
segmentวาดเส้น High-Low,vbarวาดรูปทรงแท่งขึ้น/ลง output_fileกำหนดไฟล์ HTML output,showแสดงผล