42

The infographic of the SO user survey results was quite intriguing, but one of the charts annoyed me as it showed very little real data. I don't need to be told there are more devolpers in California than in Utah - there are so many fewer residents in Utah that it's obvious. Compare the following two graphs:

Population map:

Population map


Survey results:

Survey results

Can we have a map of the per capita results? I think they would be more interesting and informative.

11
  • 4
    At least there are no developers in Arizona
    – random
    Commented Jan 25, 2013 at 22:41
  • 1
    I smiled a bit seeing Colorado: a patch of light orange in the middle of nothingness. Commented Jan 25, 2013 at 22:54
  • 6
    Ah, so you're the guy who submitted 270 responses, eh @Null?
    – Shog9
    Commented Jan 25, 2013 at 22:57
  • 26
    I feel like a lemming for posting links to xkcd, but relevant. Commented Jan 25, 2013 at 23:32
  • 4
    @MichaelPetrotta: The correlation between SO users and subscribers to Martha Stewart is alarming, to say the least. This may explain the waffles and unicorns.
    – jscs
    Commented Jan 27, 2013 at 20:45
  • 2
    @JoshCaswell More disturbing than the correlations between SO users and consumers of furry pornography? Commented Jan 27, 2013 at 20:52
  • 3
    @NullUserExceptionอ_อ: You can pry my racoon suit out of my cold dead hands! And let me add this: can you name any furry aficiando who has gone to jail for tax evasion?
    – jscs
    Commented Jan 27, 2013 at 20:52
  • 13
    Oh, if only there was a site on SE where they could've asked if their junk statistics and visualizations made any sense... Commented Jan 27, 2013 at 21:48
  • @random, Arizona actually ranks in the top 30th percentile (16th place) when you normalize for population. And @ Null, it turns out Colorado is a bright spot even after normalization, ranking at 6th place.
    – Ben Lee
    Commented Jan 31, 2013 at 19:31
  • 1
    Closely related: meta.stackexchange.com/questions/25838/… Commented Feb 1, 2013 at 23:14
  • Why is there zero mention of non-USA users? Most SE users are not from the USA. Commented Mar 11, 2016 at 0:30

2 Answers 2

20

Here are the per capita results (full data and sources listed below). Update: @Pang has produced a visualization: http://jsfiddle.net/T8m4s/embedded/result/ -- Snapshot here:

developers per capita

Note that California doesn't even make it onto the top 10 (it ranks at 13th place), and New York just barely makes cut for top 10.

  1. Washington DC [8.2%]
  2. Washington State [4.8%]
  3. Massachusetts [4.5%]
  4. Utah [3.8%]
  5. Oregon [3.4%]
  6. Colorado [3.3%]
  7. New Hampshire [3.2%]
  8. Minnesota [3.0%]
  9. Rhode Island [3.0%]
  10. New York [2.8%]
  11. Virginia [2.8%]
  12. Maryland [2.5%]
  13. California [2.5%]
  14. Nebraska [2.4%]
  15. Wisconsin [2.3%]
  16. Arizona [2.2%]
  17. Pennsylvania [2.2%]
  18. Idaho [2.0%]
  19. Kansas [1.9%]
  20. New Jersey [1.9%]
  21. Iowa [1.9%]
  22. Connecticut [1.8%]
  23. Illinois [1.8%]
  24. Ohio [1.7%]
  25. Wyoming [1.7%]
  26. Missouri [1.7%]
  27. Michigan [1.7%]
  28. Alaska [1.6%]
  29. Maine [1.5%]
  30. North Carolina [1.5%]
  31. Montana [1.4%]
  32. Georgia [1.3%]
  33. Florida [1.3%]
  34. Texas [1.3%]
  35. Vermont [1.3%]
  36. Tennessee [1.3%]
  37. Indiana [1.2%]
  38. South Dakota [1.2%]
  39. North Dakota [1.1%]
  40. Nevada [1.1%]
  41. South Carolina [1.0%]
  42. Oklahoma [0.9%]
  43. New Mexico [0.9%]
  44. Alabama [0.8%]
  45. Arkansas [0.8%]
  46. Kentucky [0.8%]
  47. Delaware [0.7%]
  48. Louisiana [0.6%]
  49. Mississippi [0.5%]
  50. Hawaii [0.4%]
  51. West Virginia [0.3%]
  52. Puerto Rico [0.2%]

Note this is 52 items because it includes Washington DC and Puerto Rico -- which, interestingly, rank at the very top and very bottom respectively. My theory on DC is that it is all city so white collar skilled professions will be more common, and my theory on Puerto Rico is the language barrier, Spanish being the dominant official language there.


Raw stack exchange data from https://www.surveymonkey.com/sr.aspx?sm=vU4rF_2bPVQaftSo1s69bGGbvMPXp7ktcfSHiDFP_2bM5qw_3d:

Alabama - 20, Alaska - 6, Arizona - 74, Arkansas - 12, California - 471, Colorado - 87, Connecticut - 33, Delaware - 3, Florida - 126, Georgia - 66, Hawaii - 3, Idaho - 16, Illinois - 114, Indiana - 41, Iowa - 29, Kansas - 28, Kentucky - 17, Louisiana - 13, Maine - 10, Maryland - 75, Massachusetts - 149, Michigan - 85, Minnesota - 82, Mississippi - 7, Missouri - 52, Montana - 7, Nebraska - 22, Nevada - 15, New Hampshire - 21, New Jersey - 85, New Mexico - 9, New York - 280, North Carolina - 72, North Dakota - 4, Ohio - 101, Oklahoma - 18, Oregon - 66, Pennsylvania - 141, Puerto Rico - 3, Rhode Island - 16, South Carolina - 24, South Dakota - 5, Tennessee - 41, Texas - 169, Utah - 55, Vermont - 4, Virginia - 114, Washington - 168, Washington DC - 26, West Virginia - 3, Wisconsin - 66, Wyoming - 5

Raw census projection data from http://www.census.gov/popest/data/state/totals/2012/tables/NST-EST2012-01.csv:

Alabama - 4822023, Alaska - 731449, Arizona - 6553255, Arkansas - 2949131, California - 38041430, Colorado - 5187582, Connecticut - 3590347, Delaware - 917092, Florida - 19317568, Georgia - 9919945, Hawaii - 1392313, Idaho - 1595728, Illinois - 12875255, Indiana - 6537334, Iowa - 3074186, Kansas - 2885905, Kentucky - 4380415, Louisiana - 4601893, Maine - 1329192, Maryland - 5884563, Massachusetts - 6646144, Michigan - 9883360, Minnesota - 5379139, Mississippi - 2984926, Missouri - 6021988, Montana - 1005141, Nebraska - 1855525, Nevada - 2758931, New Hampshire - 1320718, New Jersey - 8864590, New Mexico - 2085538, New York - 19570261, North Carolina - 9752073, North Dakota - 699628, Ohio - 11544225, Oklahoma - 3814820, Oregon - 3899353, Pennsylvania - 12763536, Rhode Island - 1050292, South Carolina - 4723723, South Dakota - 833354, Tennessee - 6456243, Texas - 26059203, Utah - 2855287, Vermont - 626011, Virginia - 8185867, Washington - 6897012, Washington DC - 632323, West Virginia - 1855413, Wisconsin - 5726398, Wyoming - 576412, Puerto Rico - 3667084

Per-capita * 1,000,000 (i.e. number of SO responses per million state residents):

Alabama - 4.147636790616718, Alaska - 8.202895895681038, Arizona - 11.292098354176666, Arkansas - 4.068995239614653, California - 12.381238034427202, Colorado - 16.770819237170613, Connecticut - 9.191312148937136, Delaware - 3.2712094315510334, Florida - 6.5225601897713, Georgia - 6.653262694500826, Hawaii - 2.1546879185930172, Idaho - 10.026771479851202, Illinois - 8.854193567428373, Indiana - 6.271669766299228, Iowa - 9.43339147338515, Kansas - 9.702329078746528, Kentucky - 3.8809108269421957, Louisiana - 2.8249244387038117, Maine - 7.5233675797025565, Maryland - 12.745211496588617, Massachusetts - 22.419014694836584, Michigan - 8.600314063233556, Minnesota - 15.244075306475628, Mississippi - 2.345116763363648, Missouri - 8.635022188685863, Montana - 6.964197062899633, Nebraska - 11.856482666630738, Nevada - 5.436888418014078, New Hampshire - 15.900442032288499, New Jersey - 9.588711942684322, New Mexico - 4.315433235932407, New York - 14.307422880052544, North Carolina - 7.383045635527954, North Dakota - 5.717324063645251, Ohio - 8.748963226201845, Oklahoma - 4.718440188527899, Oregon - 16.92588488397947, Pennsylvania - 11.04709541305795, Puerto Rico - 0.8180887048128703, Rhode Island - 15.233858774512232, South Carolina - 5.080738222795875, South Dakota - 5.999851203690148, Tennessee - 6.350442509676293, Texas - 6.485232875310883, Utah - 19.262511964646638, Vermont - 6.389664079385186, Virginia - 13.926441756261127, Washington - 24.358374322097742, Washington DC - 41.118225969955226, West Virginia - 1.6168906868713326, Wisconsin - 11.525569825918492, Wyoming - 8.674350985059299

Percentage based on last result set (i.e. percentage of SO respondents normalized to population size):

Alabama - 0.824721537170129, Alaska - 1.6310745742340413, Arizona - 2.2453356411538934, Arkansas - 0.8090843480665424, California - 2.4619016030822145, Colorado - 3.3347316843587764, Connecticut - 1.827612557886197, Delaware - 0.6504515720608812, Florida - 1.2969544194811282, Georgia - 1.322943476877953, Hawaii - 0.4284409706182859, Idaho - 1.9937363865669924, Illinois - 1.7605794571625484, Indiana - 1.2470670387501877, Iowa - 1.8757479281354774, Kansas - 1.9292238341738914, Kentucky - 0.7716853968642833, Louisiana - 0.5617116789849995, Maine - 1.4959562729950668, Maryland - 2.534274563482699, Massachusetts - 4.457826274179643, Michigan - 1.7100977237018886, Minnesota - 3.031151919554754, Mississippi - 0.4663060917725937, Missouri - 1.7169991328706176, Montana - 1.3847700743382283, Nebraska - 2.3575585577735083, Nevada - 1.0810780210241895, New Hampshire - 3.1616647398393933, New Jersey - 1.9066320538825035, New Mexico - 0.8580864023448015, New York - 2.8449067230945992, North Carolina - 1.4680544736474985, North Dakota - 1.1368402124642574, Ohio - 1.7396553181517227, Oklahoma - 0.9382208331577232, Oregon - 3.365565140867746, Pennsylvania - 2.1966189351328276, Puerto Rico - 0.16266983061322227, Rhode Island - 3.0291204509448555, South Carolina - 1.0102606492793207, South Dakota - 1.1930182793955861, Tennessee - 1.262730314317618, Texas - 1.289532207336161, Utah - 3.8301831330026452, Vermont - 1.2705291826596392, Virginia - 2.7691519369578557, Washington - 4.84345108504518, Washington DC - 8.17600195956597, West Virginia - 0.3215046639882644, Wisconsin - 2.291759414685823, Wyoming - 1.7248193223031953

Previous result set sorted by percentage descending:

Washington DC - 8.17600195956597, Washington - 4.84345108504518, Massachusetts - 4.457826274179643, Utah - 3.8301831330026452, Oregon - 3.365565140867746, Colorado - 3.3347316843587764, New Hampshire - 3.1616647398393933, Minnesota - 3.031151919554754, Rhode Island - 3.0291204509448555, New York - 2.8449067230945992, Virginia - 2.7691519369578557, Maryland - 2.534274563482699, California - 2.4619016030822145, Nebraska - 2.3575585577735083, Wisconsin - 2.291759414685823, Arizona - 2.2453356411538934, Pennsylvania - 2.1966189351328276, Idaho - 1.9937363865669924, Kansas - 1.9292238341738914, New Jersey - 1.9066320538825035, Iowa - 1.8757479281354774, Connecticut - 1.827612557886197, Illinois - 1.7605794571625484, Ohio - 1.7396553181517227, Wyoming - 1.7248193223031953, Missouri - 1.7169991328706176, Michigan - 1.7100977237018886, Alaska - 1.6310745742340413, Maine - 1.4959562729950668, North Carolina - 1.4680544736474985, Montana - 1.3847700743382283, Georgia - 1.322943476877953, Florida - 1.2969544194811282, Texas - 1.289532207336161, Vermont - 1.2705291826596392, Tennessee - 1.262730314317618, Indiana - 1.2470670387501877, South Dakota - 1.1930182793955861, North Dakota - 1.1368402124642574, Nevada - 1.0810780210241895, South Carolina - 1.0102606492793207, Oklahoma - 0.9382208331577232, New Mexico - 0.8580864023448015, Alabama - 0.824721537170129, Arkansas - 0.8090843480665424, Kentucky - 0.7716853968642833, Delaware - 0.6504515720608812, Louisiana - 0.5617116789849995, Mississippi - 0.4663060917725937, Hawaii - 0.4284409706182859, West Virginia - 0.3215046639882644, Puerto Rico - 0.16266983061322227
10
  • 1
    That's quite interesting about D.C. Everyone at Fort Meade is an avid SO user, I guess.
    – jscs
    Commented Jan 31, 2013 at 19:22
  • 5
    Massachusetts is #3 just because of MIT. And Tufts. And Northeaster. And UMass Amherst. And UMass Lowell. And.... oh, screw it Commented Jan 31, 2013 at 20:36
  • 1
    I find it interesting that you associated West Virginia with the "Deep South." I grew up in WV and lived further north than Philadelphia and about half of the state of New Jersey. Commented Jan 31, 2013 at 21:41
  • @MichaelMcGowan, yeah I don't know what I was thinking when I wrote that -- I spent a large amount of time growing up in North Carolina, which is also considerably south of West Virgina, and I don't associate NC with the deep south either. I think it must have been a brain fart on my part (and a misguided attempt at tasteless humor). Will edit it out of my answer.
    – Ben Lee
    Commented Jan 31, 2013 at 21:56
  • 4
    Visualization based on your last data: jsfiddle.net/T8m4s/embedded/result
    – Pang
    Commented Feb 1, 2013 at 2:23
  • Thank you, @Pang! I've added that to my answer (with attribution, of course).
    – Ben Lee
    Commented Feb 1, 2013 at 3:25
  • Something that I didn't notice before that really pops out in the visualization is the relative low value for Nevada compared to all the surrounding states. I wonder what that's about. West Virginia also seems relatively low compared to surrounding states.
    – Ben Lee
    Commented Feb 1, 2013 at 3:29
  • 1
    Wow, that's very nice @Pang!
    – Shog9
    Commented Feb 1, 2013 at 3:32
  • 1
    another visualization I made before I saw @Pang's: i.sstatic.net/cESoM.png
    – aaazalea
    Commented Feb 1, 2013 at 5:38
  • @Jake223, also very nice.
    – Ben Lee
    Commented Feb 1, 2013 at 17:03
4

Using the data compiled by Ben Lee, I wrote a program to make this graph: enter image description here The two blobs at the bottom are AK and HI; the blob on the right is DC. I did it using this python program:

import sys
from PIL import Image


def floodfill(img, seed, color,state,n):
    im = img.load()
    work = [seed]
    start_color = im[seed]
    while work:
        x, y = work.pop()
        im[x, y] = color
        for dx, dy in ((-1,0), (1,0), (0,-1), (0,1)):
            nx, ny = x + dx, y + dy
            if nx>=0 and ny>=0 and nx<img.size[0] and ny<img.size[1] and im[nx, ny] == start_color:
                work.append((nx, ny))

            n+=1

USA_MAP = Image.open('map.png')#.convert('2')
POINT_STATE = {
'AR':(359,253),'AZ':(133,221),'AL':(425,267),'CA':(10,125),
'CO':(195,186),'CT':(557,113),'DE':(540,162),'FL':(499,334),
'GA':(468,264),'IA':(333,144),'ID':(119,109),'IL':(387,176),
'IN':(421,169),'KS':(292,196),'KY':(422,199),'LA':(354,301),
'MD':(520,157),'MZ':(495,159),'MY':(540,179),'MA':(569,97),
'ME':(575,60),'MI':(425,126),'MJ':(392,78),'MN':(326,80),
'MO':(349,196),'MS':(385,288),'MT':(152,59),'NE':(281,161),
'NC':(524,220),'ND':(269,70),'NM':(195,246),'NJ':(544,134),
'NV':(67,151),'NY':(537,100),'OH':(448,159),'OK':(303,247),
'OR':(70,70),'PA':(503,139),'RI':(569,107),'SC':(494,242),
'SD':(265,108),'TN':(417,232),'TX':(300,300),'UT':(137,183),
'VA':(510,183),'WA':(80,30),'WI':(384,104),'WV':(485,173),'DC':(584,198),
'WY':(190,132),'NH':(560,80),'VT':(545,80),'HI':(177,350),'AK':(83,350)
}
painted_map = USA_MAP#.convert('L')
data = {
'AL': 0.8247215372,'AK': 1.6310745742,'AZ': 2.2453356412,'AR': 0.8090843481,
'CA': 2.4619016031,'CO': 3.3347316844,'CT': 1.8276125579,'DE': 0.6504515721,
'FL': 1.2969544195,'GA': 1.3229434769,'HI': 0.4284409706,'ID': 1.9937363866,
'IL': 1.7605794572,'IN': 1.2470670388,'IA': 1.8757479281,'KS': 1.9292238342,
'KY': 0.7716853969,'LA': 0.561711679,'ME': 1.495956273,'MD': 2.5342745635,
'MA': 4.4578262742,'MI': 1.7100977237,'MN': 3.0311519196,'MS': 0.4663060918,
'MO': 1.7169991329,'MT': 1.3847700743,'NE': 2.3575585578,'NV': 1.081078021,
'NH': 3.1616647398,'NJ': 1.9066320539,'NM': 0.8580864023,'NY': 2.8449067231,
'NC': 1.4680544736,'ND': 1.1368402125,'OH': 1.7396553182,'OK': 0.9382208332,
'OR': 3.3655651409,'PA': 2.1966189351,#'PR': 0.1626698306,
'RI': 3.0291204509,
'SC': 1.0102606493,'SD': 1.1930182794,'TN': 1.2627303143,'TX': 1.2895322073,
'UT': 3.830183133,'VT': 1.2705291827,'VA': 2.769151937,'WA': 4.843451085,
'DC': 6.1760019596,'WV': 0.321504664,'WI': 2.2917594147,'WY': 1.7248193223
}
data['MJ']=data['MI']
data['MY']=data['MI']
data['MZ']=data['MD']
# Normalize data based on the minimum weight being 0+eps and maximum 30.
G=170
n=0
for k, v in data.items():
    print k
    v = (v-data['WV'])/(data['DC']-data['WV'])
    color = v*4
    if color<1:
         R,G,B=255,255,254
    else:
         v=(v-1.0/4)*4.0/3
         R=240
         G=230-int(120*v)
         B=210-int(180*v)
    floodfill(painted_map, POINT_STATE[k], (R,G,B),k,n)
    n+=1
floodfill(painted_map,(0,0),(220,230,250),'up_left',1)
floodfill(painted_map,(0,300),(220,230,250),'down_left',1)
floodfill(painted_map,(300,0),(220,230,250),'up_right',1)
floodfill(painted_map,(575,350),(220,230,250),'down_right',1)
painted_map.save('out.png')
painted_map.show()

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .