Similar to a bar chart, this graph packs the bars close together, and separates an average for legibility.
The graph shown here can be created using this code:
sysuse auto, clear
summarize price if foreign==0 & !missing(rep78)
local ave1=r(mean)
summarize price if foreign==1 & !missing(rep78)
local ave2=r(mean)
set obs `=_N+3'
replace foreign=0 in -3
replace rep78=6 in -3
replace foreign=0 in -2
replace rep78=7 in -2
replace price=`ave1' in -2
replace foreign=1 in l
replace rep78=7 in l
replace price=`ave2' in l
label define kk 1 1 2 2 3 3 4 4 5 5 6 "-" 7 "AVE"
label value rep78 kk
graph bar (mean) price , over(rep78 ) over(foreign) showyvars asyvar legend(off)