paulvonhippel My apologies. I realised belatedly that the sort order can be much improved.
Code:
* Example generated by -dataex-. For more info, type help dataex
clear
input byte articles_sum float(std_nominate_dim1 democrat) str13 last_name
5 -1.0030972 1 "Brooks"
3 -.6718698 1 "Donohue"
5 -1.3223884 1 "Kastenmeier"
0 1.378159 0 "Latta"
4 -1.08665 1 "Rodino"
5 -1.576031 1 "Edwards"
0 1.5363128 0 "Hutchinson"
2 .9753151 0 "Mcclory"
5 -1.7520888 1 "Conyers"
4 -.7792948 1 "Hungate"
0 .8977302 0 "Smith"
4 -1.295532 1 "Waldie"
4 -1.1105223 1 "Eilberg"
0 1.1275007 0 "Mayne"
2 .51875836 0 "Railsback"
0 .6261835 0 "Sandman"
0 1.28267 0 "Wiggins"
0 1.7332587 0 "Dennis"
2 .4202853 0 "Fish"
2 -.22724926 1 "Flowers"
3 .68288 0 "Hogan"
2 .11591424 1 "Mann"
4 -1.2119793 1 "Danielson"
4 -1.0478576 1 "Drinan"
5 -1.3223884 1 "Rangel"
3 -1.08665 1 "Sarbanes"
4 -1.268676 1 "Seiberling"
2 1.2021013 0 "Butler"
2 .5098063 0 "Cohen"
2 1.0946763 0 "Froehlich"
5 -1.2597238 1 "Holtzman"
5 -1.3462608 1 "Jordan"
0 1.375175 0 "Lott"
0 .6530398 0 "Maraziti"
5 -1.0239854 1 "Mezvinsky"
0 1.5989774 0 "Moorhead"
4 -.54355645 1 "Owens"
3 -.7017101 1 "Thornton"
end
insobs 1
clonevar y = std_nominate_dim1
replace y = 0 in L
replace democrat = 2 in L
separate y, by(democrat)
replace last_name = " " in L
replace articles_sum = 1 in L
graph dot y? y, ysize(6) over(last_name, sort(y) descending label(labsize(tiny))) ///
marker(1, ms(Oh) msize(medium) mcolor(red)) ///
marker(2, ms(+) mcolor(blue) msize(medium)) over(articles_sum) ///
marker(3, mcolor(none)) marker(4, mcolor(none)) nofill ysc(reverse) linetype(line) lines(lc(gs12) lw(vthin)) ///
legend(order(2 "Democrats" 1 "Republicans") pos(12) row(1)) ///
title("Votes on 5 articles of impeachment", size(medium)) ///
subtitle("US House Judiciary Committee, July 27-30, 1974", size(medsmall)) ///
b1title("Conservatism (DW-Nominate dimension 1, standardized)", size(medsmall)) l1title("Number of Yea votes", size(medsmall)) ///
note(Representative, pos(11))

Comment