I've been struggling to create a DotPlot like the one shown in Cleveland's The Elements of Graphing Data.

Using the following dataset
data = Sort[{#,
WolframAlpha[
StringJoin["Number of native speakers ", #], {{"Result", 1},
"ComputableData"}]} & /@ {"Mandarin", "French", "English",
"Spanish", "German", "Hindi", "Malay", "Arabic", "Portuguese",
"Russian", "Korean", "Italian", "Cantonese", "Telugu",
"Urdu"}, #1[[2]] < #2[[2]] &]
What is the best approach to replicate this chart with its two axis, dot, dashed lines , etc?



sorted = MapAt[QuantityMagnitude, #, {2}] & /@ SortBy[data, #[[2]] &]but I'm not very familiar withUnitsso maybe it could be done simpler. – Kuba Jul 10 '13 at 06:42