Hướng dẫn tạo biểu đồ Infographic trên Stata
Bằng cách sử dụng các giá trị nhãn với các phông chữ đồ họa, chúng ta có thể tạo những biểu đồ Infographics đặc sắc và mang nhiều ý nghĩa trên Stata. Bài viết bên dưới sẽ hướng dẫn cách tạo biểu đồ infographics thông qua ví dụ so sánh mức lương trung bình của các nhóm phụ nữ (chưa kết hôn, kết hôn và đã ly hôn) theo tuổi.
Nội dung chính
Biểu đồ Infographic
Infographic có thể hiểu là một đồ họa thông tin sử dụng hình ảnh, đôi khi có một số từ, để truyền tải một phần thông tin. Bạn có thể tạo một infographic trong Stata bằng cách sử dụng các phông chữ đặc biệt. Các phông chữ này có hình ảnh được gán cho các ký tự chữ cái, vì vậy, ví dụ: khi bạn đặt chữ “A” vào phông chữ, bạn sẽ thấy hình ảnh của một chiếc ô tô. Nhiều phông chữ khác nhau có sẵn miễn phí thông qua các trang web phông chữ khác nhau. Bạn cũng có thể tạo của riêng mình nếu bạn biết cách.
Minh họa vẽ Infographic trên Stata
Dữ liệu thực hành
Ở đây tôi sẽ tạo một Infographic bằng cách sử dụng một mẫu dữ liệu con từ tập nlsw88.dta
sẵn có trên Stata. Đây là bộ dữ liệu Điều tra dọc quốc gia về phụ nữ trẻ và phụ nữ trưởng thành năm 1988 (NLSW).
Ví dụ bên dưới so sánh mức lương trung bình và độ tuổi trung bình của phụ nữ độc thân (chưa kết hôn), đã kết hôn và đã ly hôn. Để tạo đồ họa này, trước tiên chúng ta cần tính toán mức lương trung bình và độ tuổi trung bình cho từng nhóm phụ nữ này.
Thiết lập phông chữ
Ví dụ minh họa bên dưới sử dụng phông chữ Silhous được tải về tại: https://www.fontspace.com/silhous-font-f3542.
C:\Windows\Fonts
) trước khi thực hiện tiếp các bước còn lại.Tạo biến quan tâm
. sysuse nlsw88.dta, clear (NLSW, 1988 extract) . egen swage = mean(wage) if never_married == 1 (2,012 missing values generated) . egen mwage = mean(wage) if married == 1 (804 missing values generated) . egen dwage = mean(wage) if never_married == 0 & married == 0 (1,676 missing values generated) . label variable swage "Wage ($ per hour)" . label variable mwage "Wage ($ per hour)" . label variable dwage "Wage ($ per hour)" . egen sage = mean(age) if never_married == 1 (2,012 missing values generated) . egen mage = mean(age) if married == 1 (804 missing values generated) . egen dage = mean(age) if never_married == 0 & married == 0 (1,676 missing values generated) . label variable sage "Age (Average)" . label variable mage "Age (Average)" . label variable dage "Age (Average)"
Tạo giá trị nhãn
Bây giờ chúng ta có mức lương và độ tuổi trung bình, chúng ta cần tạo một biến nhãn để gắn nhãn cho mỗi quan sát là đã kết hôn, độc thân hoặc đã ly hôn.
. generate marsindiv = 1 . replace marsindiv = 0 if never_married == 0 & married == 0 (570 real changes made) . replace marsindiv = 2 if never_married == 1 (234 real changes made) . label define marsinlbl 0 `"{fontface "Silhous": -.}"' 1 `"{fontface "Silhous": T}"' 2 `"{fontface "Silhous": E}"' . label values marsindiv marsinlbl
Ở bước này, tôi đã gán giá trị nhãn đi kèm với phông chữ đồ họa đã khai báo ở trên. Từ các giá trị nhãn này, chúng ta tạo một biểu đồ phân tán như sau:
- Nhóm đã kết hôn sẽ gán kí tự
T
và được tô màu hồng - Nhóm chưa kết hôn sẽ gán kí tự
E
và được tô màu đỏ - Nhóm đã ly hôn sẽ gán kí tự
-.
và được tô màu xanh
. twoway (scatter swage sage, mlabsize(*20) mlabcolor(red) mlabel(marsindiv) msymbol(i) legend(off) ylabel(7(.4)9, nogrid) xlabel(38.5(. > 5)40.5)) (scatter mwage mage, mlabsize(*5) mlabcolor(purple) mlabel(marsindiv) msymbol(i)) (scatter dwage dage, mlabsize(*10) mlabcolo > r(blue) mlabel(marsindiv) msymbol(i)) . graph export infographics.png, replace file infographics.png saved as PNG format
Diễn giải câu lệnh
Ở câu lệnh trên có ba biểu đồ phân tán chồng lên nhau, mỗi đồ thị được bắt đầu với lệnh scatter
.
- Tùy chọn
mlabsize()
được sử dụng để tạo các biểu tượng có độ lớn khác nhau theo mức lương của mỗi nhóm. Giá trị thiết lập trong tùy chọn này cho biết độ lớn tương đối, chẳng hạn,mlabsize(*10)
sẽ lớn gấp đôimlabsize(*5)
. - Tùy chọn
mlabcolor()
chỉ định màu mà chúng ta muốn nhãn hiển thị. - Tùy chọn
mlabel()
thiết lập nhãn hiển thị dựa trên phông chữ đã chọn. Ở đây, giá trị nhãnmarsinlbl
mà tôi đã tạo chứa thông tin cho phông chữSilhous
bên trên. - Tùy chọn
msymbol(i)
chỉ định ký hiệu đánh dấu nào chúng ta muốn. Ở đây, tôi chọn kí tự i vì tôi muốn các điểm đánh dấu được ẩn đi trên đồ thị (tôi chỉ muốn nhìn thấy các nhãn). - Tùy chọn
legend(off)
thiết lập ẩn các chú giải và - Các tùy chọn
ylabel()
vàxlabel()
thiết lập khoảng giá trị của trục X và Y.