8 0 2MB
3/8/2023
TRỰC QUAN HÓA DỮ LIỆU KẾ TOÁN VỚI PYTHON
1.1 Giới thiệu chung về trực quan hóa dữ liệu 1.1.1 Khái niệm trực quan hóa dữ liệu 1.1.1.1 Khái niệm
CHƯƠNG 1: TỔNG QUAN VỀ TRỰC QUAN HÓA DỮ LIỆU VỚI PYTHON Trình bày: Phùng Anh Thư
Click to add text
1.1.1 Khái niệm trực quan hóa dữ liệu 1.1.1.1 Khái niệm
• “The use of computer-supported, visual representations of abstract data to amplify cognition.” [Card et al., 1999] • “The representation and presentation of data to facilitate understanding." [Kirk, 2016]
• Tầm quan trọng của trực quan hóa dữ liệu • Hình ảnh được não người xử lý nhanh hơn 60.000 lần so với văn bản (chữ viết) và 90% thông tin truyền đến não người là hình ảnh • Trực quan hóa dữ liệu làm cho người đọc hiểu được bức tranh lớn về dữ liệu lớn bằng cách sử dụng một hình ảnh trực quan thu nhỏ và ấn tượng • Trực quan giúp con người dễ dàng phát hiện các xu hướng, mẫu, mối tương quan và ngoại lệ trong một nhóm dữ liệu. • Trực quan hóa dữ liệu đơn giản và mạnh mẽ được xây dựng bằng dữ liệu đáng tin cậy với mô hình phân tích tốt có thể giúp các doanh nghiệp đưa ra quyết định kinh doanh nhanh chóng.
• Tóm lại, Trực quan hóa (Visualization) là kỹ thuật tạo ra những hình ảnh, biểu đồ, đồ thị để diễn tả thông điệp, thông tin đến người dùng. Trực quan hóa trình bày một cách trực quan khối dữ liệu trừu tượng để tăng cường nhận thức của con người. 3
4
3/8/2023
1.1.1.2 Lịch sử trực quan hóa dữ liệu
1.1.1.3 Phân loại Phân loại trực quan hóa dữ liệu theo chức năng
Phân loại trực quan hóa dữ liệu • Theo số lượng biến: đơn biến, nhị biến, đa biến • Theo hình thức thể hiện: Có trục tọa độ, không có trục tọa độ • Theo chức năng: So sánh, tỷ lê, phân phối, mối quan hệ
• So sánh: Các phương pháp trực quan giúp hiển thị sự khác biệt hoặc tương đồng giữa các giá trị. • Hiển thị dữ liệu theo thời gian: Phương pháp trực quan hiển thị dữ liệu trong một khoảng thời gian để hiển thị như một cách để tìm xu hướng hoặc thay đổi theo thời gian. • Tỷ lệ: Phương pháp trực quan hóa sử dụng kích thước hoặc diện tích để hiển thị sự khác biệt hoặc tương đồng giữa các giá trị hoặc cho các bộ phận với tổng thể. • Thành phần: Các phương pháp trực quan hiển thị một phần (hoặc các bộ phận) của một biến trong tổng số của nó. Thường được sử dụng để chỉ cách một tổng thể nào đó được phân chia • Phạm vi: Phương pháp trực quan hiển thị sự khác biệt giữa giới hạn và giới hạn dưới trên thang điểm. • Phân phối: Các phương pháp trực quan hiển thị tần suất, cách dữ liệu trải ra trong một khoảng thời gian được nhóm lại. • Mối quan hệ: Phương pháp trực quan thể hiện mối quan hệ và kết nối giữa hai hoặc nhiều biến.
5
1.1.1.3 Phân loại Biểu đồ thể hiện độ lớn của dữ liệu
7
6
1.1.1.3 Phân loại Biểu đồ thể hiện tỷ lệ của dữ liệu
8
3/8/2023
1.1.1.3 Phân loại Biểu đồ thể hiện sự phân phối của dữ liệu
9
1.1.1.3 Phân loại Biểu đồ thể hiện xu thế và chuỗi thời gian trong tập dữ liệu
1.1.1.3 Phân loại Biểu đồ thể hiện sự tương quan của dữ liệu
10
1.1.1.3 Phân loại Biểu đồ thể hiện sự không chắc chắn trong tập dữ liệu
Biểu đồ thể hiện dữ liệu không gian địa lý
11
12
3/8/2023
1.1.2 Các công cụ để thực hiện trực quan hóa dữ liệu
1.1.2 Các công cụ để thực hiện trực quan hóa dữ liệu
Bảng các công cụ trực quan hóa dữ liệu Python phổ biến
13
1.1.2 Các công cụ để thực hiện trực quan hóa dữ liệu
14
1.1.2.1 Nhóm các công cụ không sử dụng ngôn ngữ lập trình
1.1.2.2 Nhóm các công cụ sử dụng ngôn ngữ lập trình
Bảng các công cụ trực quan hóa dữ liệu không dựa trên Python 15
16
3/8/2023
1.1.3 Quy trình thực hiện trực quan hóa dữ liệu
1.1.3 Quy trình thực hiện trực quan hóa dữ liệu Xác định đối tượng người dùng và mục tiêu Phác thảo bố cục, nội dung cơ bản cần trình bày Lựa chọn công cụ Trình bày và format hình ảnh, biểu đồ Xác định cấu trúc dữ liệu, tổng hợp xử lý và tổ chức lại dữ liệu Kiểm tra kết quả và chia sẻ báo cáo
17
1.1.3.2 Phác thảo bố cục, nội dung cơ bản cần trình bày
• Xác định yêu cầu: Bước đầu tiên là xác định yêu cầu cần giải quyết. • Thu thập dữ liệu: Khi thu thập dữ liệu hoặc tích hợp dữ liệu đó là phải xác định được định dạng dữ liệu cần thu thập. Nếu dữ liệu thu thập có định dạng chưa phù hợp thì phải tiến hành chuyển đổi tương ứng. • Phân tích dữ liệu: Có dữ liệu rồi thì cần phải phân tích để hiểu ý nghĩa của nó. Do đó, phân tích là bước chủ yếu nhất trong tạo trực quan hóa dữ liệu. Chỉ có thông qua phân tích dữ liệu mới hiểu được dữ liệu, từ đó truyền đạt thông tin của dữ liệu cho người khác. • Trực quan hóa dữ liệu: Chúng ta đã phân tích và hiểu dữ liệu (theo phân tích chi tiết) và hiểu thông tin cần truyền đạt cho người khác. Và trực quan hóa dữ liệu là thực hiện việc truyền đạt thông tin đó.
18
1.1.3.2 Phác thảo bố cục, nội dung cơ bản cần trình bày
• Mỗi dạng biểu đồ được sử dụng để biểu diễn thông tin mà nó mang lại. • Với các loại dữ liệu khác nhau thì biểu đồ thể hiện cũng sẽ khác nhau. • Một số dạng biểu đồ thường gặp như: biểu đồ thanh (bar chart), biểu đồ đường (line chart), biểu đồ tròn (pie chart), biểu đồ bong bóng (bubble chart), biểu đồ đám mây (wordcloud), biểu đồ nhiệt (heat map), 19
20
3/8/2023
1.1.3.3 Lựa chọn công cụ
1.1.3.4 Trình bày và format hình ảnh, biểu đồ • Tính thẩm mỹ trong trực quan hóa • Mô tả mọi khía cạnh của một phần tử đồ họa nhất định, thường được sử dụng trong trực quan hóa dữ liệu nhằm thể hiện vị trí (position), hình dạng (shape), kích thước (size), màu sắc (color), độ rộng đường (line width), kiểu đường (line type)
21
22
Tính thẩm mỹ (aesthetics) trong trực quan hóa dữ liệu
1.1.3.6 Kiểm tra kết quả và chia sẻ báo cáo
1.1.3.5 Tổ chức dữ liệu
• Có 3 kiểu thiết kế biểu đồ cần tránh: • Xấu (Ugly): rõ ràng, đủ thông tin nhưng thiếu tính thẩm mỹ; • Tệ (Bad): đạt tính thẩm mỹ nhưng nhận thức không đúng, cấu trúc biểu đồ không rõ ràng, gây khó hiểu cho người xem; • Sai (Wrong): đạt tính thẩm mỹ nhưng thiếu thông tin số liệu hoặc sai về mặt toán học.
23
24
3/8/2023
1.2.1 Giới thiệu về ngôn ngữ python 1.2.1.1 Khái niệm 1.2 Trực quan hóa dữ liệu với python 1.2.1 Giới thiệu về ngôn ngữ python 1.2.1.1 Khái niệm 1.2.1.2 Yêu cầu sử dụng lập trình python 1.2.1.3 Tính chất dữ liệu sử dụng trong lập trình python
25
1.2.1 Giới thiệu về ngôn ngữ python 1.2.1.1 Khái niệm
• Python là một ngôn ngữ lập trình mã nguồn mở, dễ đọc. • Python cho phép tích hợp các thư viện hỗ trợ thực hiện đa dạng, hiệu quả cho mục tiêu trực quan hóa dữ liệu. • Các thư viện sử dụng phổ biến để trực quan: matplotlib; seaborn, plotly.
26
Một số ứng dụng trong Kế toán
• Tại sao sử dụng Python được sử dụng cho kế toán? • Sinh viên thảo luận các câu hỏi sau • 1. Nếu kế toán thực hiện các thao tác thông qua excel, các dữ liệu có số dòng trên 1 triệu dòng, thể hiện khối lượng lớn các giao dịch, file dữ liệu nặng. Hướng xử lý và giải quyết như thế nào? • 2. Khi kế toán tiến hành sửa chữa các lỗi đánh máy, lỗi điền ký tự số và chữ, ký tự ngày tháng năm…thông qua excel bằng cách nào? Ước tính thời gian bỏ ra như thế nào? • 3. Khi tiến hành gộp dữ liệu các tháng, quý, năm, thực hiện báo cáo, kế toán xử lý theo hướng nào? Công việc này có đòi hỏi tính lặp đi lặp lại qua các kỳ kế toán hay linh động tùy nhu cầu quản lý? 27
• Phân tích chung tình hình BCTC đơn vi, phân tích chiều ngang, chiều dọc, xu hướng,… • Ước tính Giá vốn hàng bán, Chi phí sản xuất chung theo pp cực đại cực tiểu vs bình phương bé nhất. • Ước tính Doanh thu, Chi phí, Số dư đảm phí,… • Phân tích Điểm hòa vốn. • Thủ tục phân tích sơ bộ.
28
3/8/2023
Thảo luận
Thảo luận
29
1.2.1.2 Yêu cầu sử dụng lập trình python
30
1.1.1.3 Phân loại
Dữ liệu định tính
31
Dữ liệu định lượng Xác định ngoại lai Box and whisker plot
So sánh: Bar chart ( biểu đồ thanh) Pie chart (biểu đồ tròn) Stacked bar chart (biểu đồ thanh chồng nhau) Tree map Heat map (biểu đồ nhiệt)
Mối quan hệ của hai biến Scatter plot (biểu đồ phân tán)
Dữ liệu địa lý Symbol map
Xu hướng biến động theo thời gian Line chart (biểu đồ đường)
Dữ liệu chuỗi Word cloud
32
Dữ liệu địa lý Filled map
3/8/2023
Những biểu đồ thường được dùng khi sử sụng phân tích dữ liệu
Những biểu đồ thường được dùng khi sử sụng phân tích dữ liệu
33
34
1.2.2 Trực quan hóa dữ liệu với python Vai trò thư viện Pandas
BÀI TẬP • Mối quan hệ giữa Doanh thu và khoản phải thu thì minh họa biểu đồ nào là phù hợp? Tại sao? • Biểu thị doanh thu của 1 công ty đa lĩnh vực thì biểu đồ nào phù hợp? Tại sao? • Biểu thị doanh thu của 1 công ty đa lĩnh vực qua các năm thì biểu đồ nào phù hợp? Tại sao?
35
• Các thư viện phân tích dữ liệu Python chính mà bạn sẽ sử để thực hiện phân tích, xử lý dữ liệu kế toán trước khi tiến hành trực quan hóa. • Trực quan hóa pandas là thư viện phân tích dữ liệu cho Python. Nó được thiết kế để thao tác dữ liệu dạng bảng và là công cụ chính mà bạn sẽ sử dụng để làm việc với bảng tính Excel bằng Python. Thư viện pandas nhằm mục đích “trở thành công cụ phân tích dữ liệu mạnh mẽ và khả thi nhất có sẵn bằng bất kỳ ngôn ngữ (lập trình) nào”; được áp dụng rộng rãi, nó đã (được cho là) đã đạt được mục tiêu này. pandas cung cấp mã độc lập để đọc, làm sạch và chuyển đổi dữ liệu từ nhiều nguồn khác nhau và cực kỳ nhanh chóng ngay cả trên các tập dữ liệu lớn (tức là bất kỳ thứ gì trên 1 000 000 hàng). Do vậy việc sử dụng pandas và các thư viện Python khác cho các tác vụ kế toán là cần thiết và hợp lý. 36
3/8/2023
1.2.2.1 Pandas
1.2.2.1 Pandas • Pandas là 1 package Python được thiết kế để làm việc với dữ liệu đơn giản, trực quan, được “gắn nhãn” và có liên hệ với nhau. Pandas là công cụ hoàn hảo để tinh chỉnh và làm sạch dữ liệu. Pandas được thiết kế hỗ trợ cho các thao tác, tập hợp và trực quan hóa dữ liệu.
• Cài đăt: pip install pandas • Tham khảo cách sử dụng pandas
Một số hàm để vẽ đồ thị từ dataframe
https://pandas.pydata.org/docs/user_guide/visualization.html
37
1.2.2.2 Matplotlib
38
Các thành phần của biểu đồ trực quan Cấu trúc biểu đồ
Giới thiệu Matplotlib là một thư viện vẽ biểu đồ 2D của Python, tạo ra các dạng biểu đồ khác nhau có chất lượng tốt. Lý do chọn Bạn có thể tạo các biểu đồ dạng plot,histogram, power spectra, bar chart, errorchart, scatterplot… với chỉ vài dòng code. (theo https://matplotlib.org/)
Cài đặt pip install matplotlib
39
40
3/8/2023
1.2.2.2 Matplotlib
1.2.2.2 Matplotlib
• Các bước thực hiện vẽ biểu đồ sử dụng thư viện matplotlib • Khai báo sử dụng các thư viện: • Numpy/pandas/matplotlib.pyplot
• Tạo biến và xử lý dữ liệu cần vẽ biểu đồ: • List/Array(numpy) một chiều/cột hoặc dòng của Dataframe(pansdas)
• Tạo đối tượng khung biểu đồ: • Figure/Axes
• Vẽ biểu đồ thích hợp trong khung đã tạo: • Plot/Bar/Barh/Pie/Boxplot/Violinplot/Hist/Scarter/Stackplot…
• Tùy chỉnh chi tiết cho biểu đồ: • Title/Legend/Xlabel/Ylabel/Spines/Xlim/Ylim
• Hiển thị/lưu trữ biểu đồ: • Show/save 41
42
1.2.2.2 Matplotlib Line plot, area plot và một số tùy chỉnh Các kiểu marker
1.2.2.2 Matplotlib
43
44
3/8/2023
1.2.2.3 Searbon
1.2.2.2 Matplotlib
Thực hành Vẽ với dữ liệu x,y tùy ý
Vẽ line plot với line style Minh họa với marker, line style Thêm labels: Thêm legend set_titile; set_xticks; set_yticks
Set_xlim; Set_ylim: Thêm lưới tọa độ
plt.plot(x,y, '--') plt.plot(x,y, 'v:') plt.xlabel('Entries'); plt.ylabel('Values') plt.legend(['first', 'Second'], loc=4) ax.set_title('sine') ax.set_xticks([0,2,4,6]) ax.set_xticklabels(['zero', 'two', 'four', 'six']) ax.set_yticks([-1,0,1]) ax.set_xlim([0,11]) ax.set_ylim([-1,11]) ax.grid()
45
1.2.2.3 Searbon Các theme ( chủ đề) • set_theme(), axes_style(), • set_style(), • plotting_context(), • set_context(), • • • •
set_color_codes(), reset_defaults(), reset_orig(), set() choose_diverging_palette(),
46
1.2.2.3 Searbon Các màu sắc • set_palette(), color_palette(), husl_palette(), • hls_palette(), • cubehelix_palette(), • dark_palette(), • light_palette(), • diverging_palette(), • blend_palette(), • xkcd_palette(), • crayon_palette(), • mpl_palette() 47
Tiện ích của bảng màu • choose_color_brewer_palette(), • choose_cubehelix_palette(), • choose_light_palette(),
48
3/8/2023
1.2.2.3 Searbon Một số đồ thị
Thực hành Với dữ liệu như file excel CPV.xlsx 1, Tiến hành tao dataframe 2,Vẽ biểu đồ doanh thu, biến phí, định phí 3, Xác định điểm hòa vốn
Danh mục các biểu đồ
Đồ thị thể hiện mối quan hệ • relplot(*params[])
barplot(*params[])
• scatterplot(*params[])
boxenplot(*params[])
• relplot(*params[])
boxplot(*params[])
• Đồ thị thể hiện sự phân bố của dữ liệu
catplot(*params[])
• displot(*params[])
countplot(*params[])
• ecdfplot(*params[])
stripplot(*params[])
• histplot(*params[])
swarmplot(*params[])
• kdeplot(*params[])
swarmplot(*params[])
• rugplot(*params[])
violinplot (*params[])
Đồ thị thể hiện kết quả hồi quy • lmplot(*params[]) • regplot(*params[])
49
• residplot(*params[])
51
Dữ liệu dưới dạng ma trận clustermap (*params[]) heatmap(* params[])
Gợi ý: Tính toán các hàm biến phí, định phí, tổng chi phí, tính điểm hòa vốn, sản lượng hòa vốn…. 1, Tạo df thông qua câu lệnh df=pd.read_excel('CPV.xlsx') 2,Vẽ biểu đồ doanh thu, biến phí y = ax + b line = plt.plot(df['x'],df['y']) 2,Vẽ biểu đồ định phí line = plt.axhline(…) 3, Xác định điểm hòa vốn và vẽ line tương ứng Nhận xét biểu đồ 50