Chào các bạn trong chuyên mục Python trong Excel!
Dạo này mình có làm việc nhiều với dữ liệu trên Excel và nhận thấy việc trực quan hóa dữ liệu bằng biểu đồ là cực kỳ quan trọng. Tuy nhiên, việc tạo biểu đồ thủ công đôi khi tốn khá nhiều thời gian, đặc biệt khi dữ liệu thay đổi liên tục.
Mình mới tìm hiểu và áp dụng được một cách khá hay để tự động tạo biểu đồ ngay từ Python. Thay vì phải copy-paste dữ liệu sang Excel rồi mới vẽ, giờ đây mình có thể xử lý, phân tích dữ liệu bằng Python (với Pandas là chủ yếu) và sau đó dùng thư viện xlsxwriter để tạo trực tiếp các loại biểu đồ (cột, đường, tròn, scatter...) ngay trong file Excel mới hoặc file Excel có sẵn.
Cách này giúp tiết kiệm đáng kể thời gian và đảm bảo biểu đồ luôn được cập nhật chính xác với dữ liệu nguồn.
Ví dụ đơn giản, sau khi có DataFrame Pandas, mình có thể tạo biểu đồ cột như sau:
import pandas as pd
import xlsxwriter
# Dữ liệu mẫu
data = {'Category': ['A', 'B', 'C', 'D'], 'Values': [10, 25, 15, 20]}
df = pd.DataFrame(data)
# Tạo file Excel và workbook
workbook = xlsxwriter.Workbook('biểu_đồ_tự_động.xlsx')
worksheet = workbook.add_worksheet()
# Ghi dữ liệu vào Excel
worksheet.write_column('A1', df['Category'])
worksheet.write_column('B1', df['Values'])
# Tạo biểu đồ cột
chart = workbook.add_chart({'type': 'column'})
chart.add_series({
'name': '=Sheet1!$B$1', # Tên chuỗi dữ liệu
'categories': '=Sheet1!$A$2:$A$5', # Danh mục trục X
'values': '=Sheet1!$B$2:$B$5', # Giá trị trục Y
})
# Thêm tiêu đề biểu đồ và trục
chart.set_title({'name': 'Biểu đồ ví dụ'})
chart.set_x_axis({'name': 'Danh mục'})
chart.set_y_axis({'name': 'Giá trị'})
# Chèn biểu đồ vào sheet
worksheet.insert_chart('D2', chart)
workbook.close()
Ai đã từng áp dụng cách này hoặc có các thư viện/phương pháp khác hiệu quả hơn, chia sẻ thêm cho mọi người cùng học hỏi nhé!