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

Python - วาดกราฟหุ้นใน Excel ด้วย XlsxWriter

Stock chart (กราฟหุ้น) เป็นกราฟราคาที่แสดงราคาหุ้นตามกรอบเวลา แสดงข้อมูลสำคัญ ได้แก่ สัญลักษณ์หุ้น/ตลาด, ช่วงเวลา, การเปลี่ยนแปลงราคา, ราคาล่าสุด, และปริมาณการซื้อขาย

ตัวอย่างโค้ด


from datetime import datetime
import xlsxwriter

# สร้าง Workbook
workbook = xlsxwriter.Workbook('chart_stock.xlsx')
worksheet = workbook.add_worksheet()

# Format ต่างๆ
bold = workbook.add_format({'bold': 1})
date_format = workbook.add_format({'num_format': 'dd/mm/yyyy'})

# สร้าง Stock Chart
chart = workbook.add_chart({'type': 'stock'})

# ข้อมูล
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],
]

# เขียน Header
worksheet.write_row('A1', headings, bold)

# เขียนข้อมูล
for row in range(5):
    date = datetime.strptime(data[0][row], "%Y-%m-%d")
    worksheet.write(row + 1, 0, date, date_format)
    worksheet.write(row + 1, 1, data[1][row])
    worksheet.write(row + 1, 2, data[2][row])
    worksheet.write(row + 1, 3, data[3][row])

worksheet.set_column('A:D', 11)

# เพิ่ม Series (High, Low, Close)
chart.add_series({
    'categories': '=Sheet1!$A$2:$A$6',
    'values': '=Sheet1!$B$2:$B$6',
})
chart.add_series({
    'categories': '=Sheet1!$A$2:$A$6',
    'values': '=Sheet1!$C$2:$C$6',
})
chart.add_series({
    'categories': '=Sheet1!$A$2:$A$6',
    'values': '=Sheet1!$D$2:$D$6',
})

# ตั้งค่ากราฟ
chart.set_title({'name': 'High-Low-Close'})
chart.set_x_axis({'name': 'Date'})
chart.set_y_axis({'name': 'Share price'})

# แทรกกราฟ
worksheet.insert_chart('E9', chart)

workbook.close()

โครงสร้าง Stock Chart

Stock chart ใน Excel ต้องการข้อมูลอย่างน้อย 3 ชุด: High, Low, Close (เรียงลำดับนี้) สำหรับ Open-High-Low-Close (OHLC) ต้องมี 4 ชุด

การตั้งค่ารูปแบบวันที่


# รูปแบบวันที่ที่พบบ่อย
date_format = workbook.add_format({'num_format': 'dd/mm/yyyy'})    # 31/12/2023
date_format = workbook.add_format({'num_format': 'yyyy-mm-dd'})    # 2023-12-31
date_format = workbook.add_format({'num_format': 'mmm dd, yyyy'})  # Dec 31, 2023

สรุปขั้นตอน

  1. สร้าง Workbook และ Worksheet
  2. สร้าง Format สำหรับ header และ date
  3. สร้าง Chart object ด้วย add_chart({'type': 'stock'})
  4. เขียนข้อมูลลงชีท (แปลงสตริงวันที่เป็น datetime object)
  5. เพิ่ม Series สำหรับ High, Low, Close ด้วย add_series()
  6. ตั้งค่า Title, Axis labels
  7. แทรกกราฟด้วย insert_chart()
  8. ปิด Workbook

การติดตั้ง


pip install xlsxwriter