Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การสร้าง Candlestick Chart ด้วย Bokeh ใน Python


บทนำ

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() ก่อนเพื่อดาวน์โหลดข้อมูลตัวอย่าง

ผลลัพธ์

การสร้าง Candlestick Chart ด้วย Bokeh ใน Python

คำอธิบาย

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