Длинные строки могут быть особенно проблематичными в качестве меток на всех видах графиков.Это потому, что они имеют тенденцию перекрываться друг с другом, создавая грязный результат.
Однако следующее делает то, что вы хотите:
twoway scatter code year, yscale(range(14900 18100)) ylabel(15328 16564 16897 ///
17874, labsize(vsmall) angle(horizontal)) ytitle("Code") xscale(range(2006 2018)) ///
xtitle("Year") xlabel(2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018, ///
labsize(vsmall) grid) mlabel(products) mlabposition(6) mlabangle(20) mlabgap(0) ///
mlabsize(vsmall) msymbol(none) graphregion(color(white))
Вы также можете раскрасить этикетки, комбинируя графики разброса для различных кодов:
twoway scatter code year if code == 15328, mlabel(products) mlabposition(6) ///
mlabangle(20) mlabgap(0) mlabsize(vsmall) msymbol(none) mlabcolor("cranberry") || ///
scatter code year if code == 16564, mlabel(products) mlabposition(6) ///
mlabangle(20) mlabgap(0) mlabsize(vsmall) msymbol(none) mlabcolor("green") || ///
scatter code year if code == 16897, mlabel(products) mlabposition(6) ///
mlabangle(20) mlabgap(0) mlabsize(vsmall) msymbol(none) mlabcolor("ebblue") || ///
scatter code year if code == 17874, yscale(range(14900 18100)) ///
ylabel(15328 16564 16897 17874, labsize(vsmall) angle(horizontal)) ytitle("Code") ///
xscale(range(2006 2018)) xtitle("Year") xlabel(2007 2008 2009 2010 2011 2012 2013 ///
2014 2015 2016 2017 2018, labsize(vsmall) grid) mlabel(products) mlabposition(6) ///
mlabangle(20) mlabgap(0) mlabsize(vsmall) msymbol(none) mlabcolor("maroon") ///
graphregion(color(white)) legend(off)
Или, возможно, что-то вроде этого: