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

Python - Vẽ biểu đồ Excel với pattern fills trong cột sử dụng XlsxWriter


Biểu đồ được cấu thành từ ít nhất một series của một hoặc nhiều điểm dữ liệu. Các series bản thân chúng bao gồm các tham chiếu đến phạm vi ô. Để vẽ biểu đồ trên trang Excel, trước tiên tạo đối tượng biểu đồ loại cụ thể (ví dụ biểu đồ cột). Sau khi tạo đối tượng biểu đồ, chèn dữ liệu vào và cuối cùng thêm đối tượng biểu đồ đó vào đối tượng sheet.

Ví dụ

# import module 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_pattern.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})
# Thêm dữ liệu worksheet mà biểu đồ sẽ tham chiếu.
headings = ['Shingle', 'Brick']
data = [
    [105, 150, 130, 90],
    [50, 120, 100, 110],
]
# 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)
# Ghi cột dữ liệu bắt đầu từ 'A2', 'B2' tương ứng.
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
# 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ột
chart = workbook.add_chart({'type': 'column'})
# Thêm series dữ liệu với pattern vào biểu đồ sử dụng add_series.
# gap được dùng để làm pattern rõ ràng hơn.
# Cấu hình series đầu tiên.= Sheet1!$A$1 tương đương với ['Sheet1', 0, 0].
# 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.
chart.add_series({
    'name': '=Sheet1!$A$1',
    'values': '=Sheet1!$A$2:$A$5',
    'pattern': {
        'pattern': 'shingle',
        'fg_color': '#804000',
        'bg_color': '#c68c53'
    },
    'border': {'color': '#804000'},
    'gap': 70,
})
# Cấu hình series thứ hai.
chart.add_series({
    'name': '=Sheet1!$B$1',
    'values': '=Sheet1!$B$2:$B$5',
    'pattern': {
        'pattern': 'horizontal_brick',
        'fg_color': '#b30000',
        'bg_color': '#ff6666'
    },
    'border': {'color': '#b30000'},
})
# Thêm tiêu đề biểu đồ
chart.set_title({'name': 'Cladding types'})
# Thêm nhãn trục x
chart.set_x_axis({'name': 'Region'})
# Thêm nhãn trục y
chart.set_y_axis({'name': 'Number of houses'})
# 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 ô D2.
worksheet.insert_chart('D2', chart, {'x_offset': 25, 'y_offset': 10})
# Cuối cùng, đóng file Excel qua phương thức close().
workbook.close()