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

Python - Vẽ biểu đồ kết hợp (combined) trong trang tính Excel sử dụng module XlsxWriter


XlsxWriter là một thư viện Python cho phép thực hiện nhiều thao tác trên file Excel như tạo, ghi, phép toán và vẽ đồ thị.

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_combined.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': True})
# Thêm dữ liệu worksheet mà biểu đồ sẽ tham chiếu.
headings = ['Number', 'Batch 1', 'Batch 2']
data = [
    [2, 3, 4, 5, 6, 7],
    [10, 40, 50, 20, 10, 50],
    [30, 60, 70, 50, 40, 30],
]
# 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', 'C2' tương ứng.
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
# 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. Đây sẽ dùng làm biểu đồ chính.
column_chart1 = workbook.add_chart({'type': 'column'})
# Thêm series dữ liệu vào biểu đồ sử dụng phương thức add_series.
# 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.
column_chart1.add_series({
    'name': '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$B$2:$B$7',
})
# Tạo biểu đồ đường mới. Đây sẽ dùng làm biểu đồ phụ.
line_chart1 = workbook.add_chart({'type': 'line'})
# Cấu hình series dữ liệu cho biểu đồ phụ.
line_chart1.add_series({
    'name': '=Sheet1!$C$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$C$2:$C$7',
})
# Kết hợp cả biểu đồ cột và đường lại với nhau.
column_chart1.combine(line_chart1)
# Thêm tiêu đề biểu đồ
column_chart1.set_title({'name': 'Combined chart - same Y axis'})
# Thêm nhãn trục x
column_chart1.set_x_axis({'name': 'Test number'})
# Thêm nhãn trục y
column_chart1.set_y_axis({'name': 'Sample length (mm)'})
# 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', column_chart1, {'x_offset': 25, 'y_offset': 10})
# Cuối cùng, đóng file Excel qua phương thức close().
workbook.close()