Cách vẽ biểu đồ phân tán twoway scatterplots, từ cơ bản đến nâng cao

Bài này hiển thị các ví dụ về kết hợp các biểu đồ phân tán twoway scatterplots. Điều này được minh họa bằng cách nhập các câu lệnh và hiển thị biểu đồ kết quả.
Tập dữ liệu được sử dụng trong các ví dụ này có thể được lấy bằng lệnh sau:
use https://phantichstata.com/data/hsb2, clear
Cụ thể kết hợp đồ thị trong các tình huống sau:

  • Biểu đồ hai chiều các ô khác nhau cho nhóm khác nhau(sử dụng “by”)
  • Kết hợp biểu đồ phân tán và biểu đồ tuyến tính trong một biểu đồ
  • Kết hợp nhiều biểu đồ riêng biệt vào 1 biểu đồ duy nhất bằng lệnh graph combine

Biểu đồ phân tán các ô khác nhau cho nhóm khác nhau

Biểu đồ khác nhau dựa vào giới tính:
twoway (scatter read write), by(female)

Biểu đồ khác nhau dựa vào giới tính và loại trường tư hoặc trường công:
twoway (scatter read write), by(female schtyp )

Thay vì hiện thị 2 cột, bây giờ bạn muốn hiển thị 3 cột thì làm như sau , thêm tham số cols(3) như sau
twoway (scatter read write), by(female schtyp , cols(3))
 

 

Kết hợp biểu đồ phân tán và biểu đồ tuyến tính trong một biểu đồ

Bạn hãy chạy lệnh sau:

twoway (scatter read write) (lfit read write) , ytitle(Điểm đọc reading)
 
Kết hợp biểu đồ phân tán và biểu đồ tuyến tính trong một biểu đồ, đồng thời kết hợp luôn giới tính và loại trường.
twoway (scatter read write) (lfit read write) , ytitle(Điểm đọc reading) by(female schtyp)
 
Biểu đồ tuyến tính với đầy đủ số liệu và bỏ đi một số quan sát nào đó
twoway (scatter read write) (lfit read write) (lfit read write if id <= 51) if id<=100, ytitle(Điểm đọc reading) legend(lab(3 "Fitted values cho 50 quan sát đầu tiên"))
Ý nghĩa lệnh này như sau:
1. Chỉ chạy cho 100 quan sát có id<=100: “if id<=100”
2. Đường tuyến tính fitted value thứ 2 chỉ áp dụng cho 50 quan sát đầu tiên: “lfit read write if id <= 51”
3. Mục thứ 3 trong phần chú thích bên dưới được gán nhãn bằng đoạn “legend(lab(3 "Fitted values cho 50 quan sát đầu tiên")”. Nếu muốn gãn nhãn cho mục số 2 thì sửa lại là lab(2)
 
Kết hợp biểu đồ phân tán với nhiều biến và biều đồ tuyến tính
Hiển thị điểm đọc và toán ở trục y, điểm viết ở trục x
twoway (scatter read write) (scatter math write)
 

Hiển thị điểm đọc và toán ở trục y, điểm viết ở trục x, đồng thời xây dựng 2 đường fitted line tuyến tính
twoway (scatter read write) (scatter math write) (lfit read write) (lfit math write)
 

Giờ muốn gán nhãn cho biểu đồ thì làm như sau:
twoway (scatter read write) (scatter math write) (lfit read write) (lfit math write) , legend (label(1 "1 điểm đọc") label(2 "2 điểm toán") label(3 "3 fitted value đọc") label(4 "4 fitted value toán") )
 

Để đảo thứ tự các nhãn, ta thêm tùy chọn legend(order(1 3 2 4)) như sau:
twoway (scatter read write) (scatter math write) (lfit read write) (lfit math write) , legend (label(1 "1 điểm đọc") label(2 "2 điểm toán") label(3 "3 fitted value đọc") label(4 "4 fitted value toán"))legend(order(1 3 2 4))
 

Biến giới tính là female, ta có thể chia điểm viết (biến write) thành write0 và write1 bằng lệnh sau, mục đích là tạo 2 biến điểm viết mới dựa theo giới tính. Như vậy người male sẽ có giá trị ở biến write0, female có giá trị ở biến write1
separate write, by(female)
 

twoway (scatter write0 read) (scatter write1 read)
Chạy lệnh trên để ra được biểu đồ kết hợp nam và nữ trong cùng 1 biểu đồ
 

Gán thêm fitted line cho cả nam và nữ nữa nhé
twoway (scatter write0 read) (scatter write1 read) (lfit write0 read) (lfit write1 read) ,legend(order(1 "Males" 2 "Females" 3 "Lfit Males" 4 "Lfit Females"))
 

Kết hợp nhiều biểu đồ vào 1 biểu đồ duy nhất bằng lệnh graph combine

Còn 1 tuyệt chiêu cuối cùng rất hay, đó là bạn có thể kết hợp rất nhiều biểu đồ vào 1 biểu đồ duy nhất. Lệnh sử dụng là “graph combine”
Bây giờ bạn sử dụng 4 lệnh sau để tạo 3 biểu đồ
twoway (scatter read write) (lfit read write), name(bieudo1)
regress read write
rvfplot, name(bieudo2)
lvr2plot, name(bieudo3)

Giờ sử dụng lệnh graph combine để kết hợp 3 biểu đồ đó với nhau thành 1 biểu đồ duy nhất nhé
graph combine bieudo1 bieudo2 bieudo3
 

Bạn cứ trao đổi thêm với nhóm ở đây, hoặc comment bên dưới nhé.

Liên hệ nhóm thạc sĩ Hỗ trợ Stata.

– SMS, Zalo, Viber:

phone number

– Facebook  facebook.com/hotroStata

Email  hotrostata@gmail.com

Comments