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
.