Using xtset to produce a panel data graph

Below is a worked example of using xtset to produce a panel data graph:

The commands I used are as below:

clear
set obs 3
generate id = _n
expand 10
bysort id: generate year = 2000 + _n - 1
set seed 62470177
generate data=runiform()*100

xtset id year
bysort year : egen mean = mean(data)
replace mean = . if id != 1
generate mean_lab="mean" if id == 1 & year == 2009
sort id year
xtline data, overlay addplot((line mean year) (scatter data year if year == 2009, mlabel(id)) (scatter mean year if year == 2009, mlabel(mean_lab)), legend(off))