Membuat Scatter Plot dengan Poin yang Berwarna Menurut Variabel Kategorikal di Stata

Membuat Scatter Plot dengan Poin yang Berwarna Menurut Variabel Kategorikal di Stata

Saya akan memberikan solusi lebih mudah dan efektif untuk membuat scatter plot dengan poin yang berwarna menurut variabel kategorikal di Stata. Saat ini, saya hanya menemukan cara dengan kode warna dalam lapisan twoway plot, seperti contoh berikut:

twoway (scatter latitud longitud if nougrups4 ==1, mcolor(black)) ///
 (scatter latitud longitud if nougrups4 ==2, mcolor(blue)) ///
 (scatter latitud longitud if nougrups4 ==3, mcolor(red)) ///
 (scatter latitud longitud if nougrups4 ==4, mcolor(green))

Namun, cara ini terlihat sangat konvolut dan tidak efisien untuk operasi yang sederhana. Berikut ini adalah contoh bagaimana kita dapat membuat scatter plot dengan poin yang berwarna menurut variabel kategorikal dengan menggunakan perintah sepscatter dari SSC:

sysuse auto, clear

separate price, by(rep78)
tw scatter price? mpg
drop price?

Or in one line using Nick Cox's sepscatter command from SSC:
sepscatter price mpg, separate(rep78)

The latter command can also output other type of plots with the recast() option.

Dalam contoh di atas, kita menggunakan perintah sepscatter untuk membuat scatter plot dengan poin yang berwarna menurut variabel kategorikal rep78. Kita juga dapat memanfaatkan opsi recast() untuk menghasilkan jenis plot lainnya.

Namun, jika Anda tidak memiliki perintah sepscatter, maka Anda dapat menggunakan wrapper command berikut ini:

capture program drop foo
program define foo 

syntax varlist(min=1 max=3) 

quietly {
 tokenize `varlist'
 levelsof `3', local(foolevels) 

 local i = 0
 local foocolors red green blue

 foreach x of local foolevels {
 local ++i
 local extra `extra' || scatter `1' `2' if `3' == `x', mcolor("`: word `i' of `foocolors''")
 } 
 twoway `extra' 
}
end


And a toy example:

clear
set obs 10

generate A = runiform()
generate B = runiform()
generate C = .

replace C = 1 in 1/3
replace C = 2 in 4/7
replace C = 3 in 8/10

foo A B C

Dalam contoh di atas, kita menggunakan wrapper command foo untuk membuat scatter plot dengan poin yang berwarna menurut variabel kategorikal. Kita dapat mengextendi perintah ini untuk memenuhi kebutuhan Anda.

Jadi, solusi yang lebih mudah dan efektif untuk membuat scatter plot dengan poin yang berwarna menurut variabel kategorikal di Stata adalah menggunakan perintah sepscatter atau wrapper command foo.