function dot_plot(data){
return Plot.plot({
marginLeft:200,
x:{domain:[d3.min(data.map(d=>d.rep_diff))*1.1, d3.max(data.map(d=>d.dem_diff))*1.1], axis: "top",grid:true},
y:{grid:true},
color:{domain:['Total', 'Dem', 'Rep'], range:['#9498A2', '#163BA6', '#B22719'], legend:true},
width:800,
marks:[
Plot.ruleX([0]),
Plot.ruleY(data, {x1:'dem_diff', x2:'rep_diff', y:'name', strokeWidth:5, opacity:0.2}),
Plot.dot(data, {x:'total_diff', y:'name', fill:'#9498A2', r:5, sort:{y:'x', reverse:true}}),
Plot.dot(data, {x:'dem_diff', y:'name', fill:'#163BA6', r:5, sort:{y:'x', reverse:true}}),
Plot.dot(data, {x:'rep_diff', y:'name', fill:'#B22719', r:5, sort:{y:'x', reverse:true}})
]
})
}