# Chicago Gov-Job Average Salary Bubble Charts.

According to this data : Current Employee Names, Salaries, and Position Titles on City Of Chicago Data Portal https://data.cityofchicago.org/;

The Chicago government employees 32,160 employees, and pays approximately \$2,429,980,941.36 in annual salaries.

CLICK ON Pictures FOR Focus. (temporary courtesy of imgur)

All Employees.

Let’s remove distinct Position-Titles with Less Then 10 Employees, and the position title of Police Officer from the data.

(20 or more), and, (200 or less); employee counts within a position title.

(10 or more), and,( 50 or less); employee counts within a position title.

C#

```int counter = 0; string line; Dictionary&lt;string, int&gt; dCount = new Dictionary&lt;string, int&gt;(); Dictionary&lt;string, decimal&gt; dSalTotal = new Dictionary&lt;string, decimal&gt;(); Dictionary&lt;string, LinkedList&gt; dDeps = new Dictionary&lt;string, LinkedList&gt;(); System.IO.StreamReader file = new System.IO.StreamReader("C:\\AAAChicagoEmployees\\Current_Employee_Names__Salaries__and_Position_Titles (1).csv"); while ((line = file.ReadLine()) != null) { string[] parts = line.Split(','); try { string name = parts[2]; name = Regex.Replace(name, "'", ""); string dep = parts[3]; decimal sal = decimal.Parse(parts[4].TrimStart('\$') ); if ( dCount.ContainsKey(name ) ) { int a = dCount[name]; a += 1; dCount[name] = a; decimal b = dSalTotal[name]; b += sal; dSalTotal[name] = b; LinkedList c = dDeps[name]; c.AddLast(dep); dDeps[name] = c; } else { dCount.Add(name, 1); dSalTotal.Add(name, sal); LinkedList newDepList = new LinkedList(); newDepList.AddLast(dep); dDeps.Add(name, newDepList); } } catch (Exception x) { //header line } counter++; } file.Close(); Dictionary&lt;string, decimal&gt; dAveOrder = new Dictionary&lt;string, decimal&gt;(); foreach (KeyValuePair&lt;string, int&gt; item in dCount.OrderBy(key =&gt; key.Value)) { if (item.Value &gt;= 10 &amp;&amp; item.Value &lt;= 50) { decimal aveSal = dSalTotal[item.Key] / item.Value; dAveOrder.Add(item.Key, aveSal); } } string json = ""; foreach (KeyValuePair&lt;string, decimal&gt; item in dAveOrder.OrderBy(key =&gt; key.Value)) { Hashtable frequencyHash = new Hashtable(); LinkedList uniqueList = new LinkedList(); foreach (var element in dDeps[item.Key]) { if (uniqueList.Contains(element)) { int elementCount = int.Parse(frequencyHash[element].ToString()); elementCount++; frequencyHash[element] = elementCount; } else { uniqueList.AddLast(element); frequencyHash.Add(element, 1); } } int max = 0; string sMaxDep = ""; foreach (string element in frequencyHash.Keys) { int iDep = int.Parse(frequencyHash[element].ToString()); if (iDep &gt; max) { max = iDep; sMaxDep = element; } } if (item.Key == "POLICE OFFICER") { } else { json += "[ '" + item.Key + "', " + dCount[item.Key] + " , " + item.Value + " ,'" + Regex.Replace(sMaxDep, "'", "") + "' , " + item.Value + " ],\r\n"; } } System.IO.StreamWriter fileWrite = new System.IO.StreamWriter("c:\\AAAChicagoEmployees\\data.txt"); fileWrite.WriteLine(json); fileWrite.Close();```