Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python - Vẽ biểu đồ cổ phiếu trong trang tính Excel sử dụng module XlsxWriter


Biểu đồ cổ phiếu đơn giản là một biểu đồ giá cho thấy giá cổ phiếu được vẽ theo khung thời gian, và nó hiển thị một vài tập thông tin quan trọng:

  • Mã cổ phiếu và sàn giao dịch.
  • Kỳ biểu đồ
  • Thay đổi giá
  • Thay đổi cuối cùng
  • Khối lượng

Ví dụ

# từ thư viện datetime import phương thức datetime
from datetime import datetime
# import thư viện xlsxwriter
import xlsxwriter
# Workbook() nhận một đối số bắt buộc là tên file
# mà chúng ta muốn tạo.
workbook = xlsxwriter.Workbook('chart_stock.xlsx')
# Đối tượng workbook sau đó được dùng để thêm worksheet mới
# thông qua phương thức add_worksheet().
worksheet = workbook.add_worksheet()
# Tạo đối tượng Format mới để định dạng ô trong worksheet
# sử dụng phương thức add_format().
# ở đây chúng ta tạo đối tượng format in đậm.
bold = workbook.add_format({'bold': 1})
# ở đây chúng ta tạo đối tượng format ngày tháng
date_format = workbook.add_format({'num_format': 'dd/mm/yyyy'})
# Tạo đối tượng biểu đồ có thể thêm vào worksheet
# sử dụng phương thức add_chart().
# ở đây chúng ta tạo đối tượng biểu đồ cổ phiếu.
chart = workbook.add_chart({'type': 'stock'})
# Thêm dữ liệu worksheet mà biểu đồ sẽ tham chiếu.
headings = ['Date', 'High', 'Low', 'Close']
data = [
    ['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05'],
    [27.2, 25.03, 19.05, 20.34, 18.5],
    [23.49, 19.55, 15.12, 17.84, 16.34],
    [25.45, 23.05, 17.32, 20.45, 17.34],
]
# Ghi một hàng dữ liệu bắt đầu từ 'A1' với định dạng in đậm.
worksheet.write_row('A1', headings, bold)
# Điền dữ liệu vào trang tính Excel
for row in range(5):
    # chuyển chuỗi ngày tháng sang đối tượng date
    date = datetime.strptime(data[0][row], "%Y-%m-%d")
    # áp dụng date_format cho ô này
    worksheet.write(row + 1, 0, date, date_format)
    # ghi dữ liệu vào các ô tương ứng
    worksheet.write(row + 1, 1, data[1][row])
    worksheet.write(row + 1, 2, data[2][row])
    worksheet.write(row + 1, 3, data[3][row])
# độ rộng cột A đến D đặt là 11.
worksheet.set_column('A:D', 11)
# Thêm series cho từng cột High-Low-Close.
# sử dụng phương thức add_series.
# lưu ý: không chèn khoảng trắng giữa
# = và Sheet1, Sheet1 và !
# nếu chèn khoảng trắng sẽ báo cảnh báo.
# dữ liệu lấy từ A2 đến A6 và B2 đến B6 tương ứng.
chart.add_series({
    'categories': '=Sheet1!$A$2:$A$6',
    'values': '=Sheet1!$B$2:$B$6',
})
# dữ liệu lấy từ A2 đến A6 và C2 đến C6 tương ứng.
chart.add_series({
    'categories': '=Sheet1!$A$2:$A$6',
    'values': '=Sheet1!$C$2:$C$6',
})
# dữ liệu lấy từ A2 đến A6 và D2 đến D6 tương ứng.
chart.add_series({
    'categories': '=Sheet1!$A$2:$A$6',
    'values': '=Sheet1!$D$2:$D$6',
})
# Thêm tiêu đề biểu đồ
chart.set_title({'name': 'High-Low-Close'})
# Thêm nhãn trục x
chart.set_x_axis({'name': 'Date'})
# Thêm nhãn trục y
chart.set_y_axis({'name': 'Share price'})
# thêm biểu đồ vào worksheet với offset cho trước
# góc trên bên trái của biểu đồ neo vào ô E9
worksheet.insert_chart('E9', chart)
# Cuối cùng, đóng file Excel qua phương thức close().
workbook.close()