awacke1 commited on
Commit
ceac54d
·
1 Parent(s): adabd24

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +98 -0
app.py ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Import necessary libraries
2
+ import pandas as pd
3
+ import matplotlib.pyplot as plt
4
+
5
+ # Create a dictionary of states with their region, population, and area
6
+ states = {
7
+ 'Alabama': {'region': 'South', 'population': 4903185, 'area': 135767},
8
+ 'Alaska': {'region': 'West', 'population': 731545, 'area': 1723337},
9
+ 'Arizona': {'region': 'West', 'population': 7278717, 'area': 295234},
10
+ 'Arkansas': {'region': 'South', 'population': 3017804, 'area': 137732},
11
+ 'California': {'region': 'West', 'population': 39538223, 'area': 423967},
12
+ 'Colorado': {'region': 'West', 'population': 5773714, 'area': 269601},
13
+ 'Connecticut': {'region': 'Northeast', 'population': 3605944, 'area': 14357},
14
+ 'Delaware': {'region': 'South', 'population': 989948, 'area': 6446},
15
+ 'Florida': {'region': 'South', 'population': 21538187, 'area': 170312},
16
+ 'Georgia': {'region': 'South', 'population': 10711908, 'area': 153910},
17
+ 'Hawaii': {'region': 'West', 'population': 1415872, 'area': 28314},
18
+ 'Idaho': {'region': 'West', 'population': 1826156, 'area': 216443},
19
+ 'Illinois': {'region': 'Midwest', 'population': 12671821, 'area': 149995},
20
+ 'Indiana': {'region': 'Midwest', 'population': 6732219, 'area': 94326},
21
+ 'Iowa': {'region': 'Midwest', 'population': 3155070, 'area': 145746},
22
+ 'Kansas': {'region': 'Midwest', 'population': 2913314, 'area': 213099},
23
+ 'Kentucky': {'region': 'South', 'population': 4467673, 'area': 104656},
24
+ 'Louisiana': {'region': 'South', 'population': 4648794, 'area': 135659},
25
+ 'Maine': {'region': 'Northeast', 'population': 1362359, 'area': 91634},
26
+ 'Maryland': {'region': 'South', 'population': 6177224, 'area': 32131},
27
+ 'Massachusetts': {'region': 'Northeast', 'population': 7029917, 'area': 27336},
28
+ 'Michigan': {'region': 'Midwest', 'population': 10077331, 'area': 250487},
29
+ 'Minnesota': {'region': 'Midwest', 'population': 5706494, 'area': 225163},
30
+ 'Mississippi': {'region': 'South', 'population': 2989260, 'area': 125438},
31
+ 'Missouri': {'region': 'Midwest', 'population': 6169270, 'area': 180540},
32
+ 'Montana': {'region': 'West', 'population': 1084225, 'area': 380831},
33
+ 'Nebraska': {'region': 'Midwest', 'population': 1952570, 'area': 200330},
34
+ 'Nevada': {'region': 'West', 'population': 3139658, 'area': 286380},
35
+ 'New Hampshire': {'region': 'Northeast', 'population': 1371246, 'area': 24214},
36
+ 'New Jersey': {'region': 'Northeast', 'population': 9288994, 'area': 22591},
37
+ 'New Mexico': {'region': 'West', 'population': 2117522, 'area': 314917},
38
+ 'New York': {'region': 'Northeast', 'population': 20215751, 'area': 141297},
39
+ 'North Carolina': {'region': 'South', 'population': 10488084, 'area': 139391},
40
+ 'North Dakota': {'region': 'Midwest', 'population': 762062, 'area': 183108},
41
+ 'Ohio': {'region': 'Midwest', 'population': 11689100, 'area': 116098},
42
+ 'Oklahoma': {'region': 'South', 'population': 3953823, 'area': 181037},
43
+ 'Oregon': {'region': 'West', 'population': 4217737, 'area': 254799},
44
+ 'Pennsylvania': {'region': 'Northeast', 'population': 12801989, 'area': 119280},
45
+ 'Rhode Island': {'region': 'Northeast', 'population': 1097379, 'area': 4001},
46
+ 'South Carolina': {'region': 'South', 'population': 5148714, 'area': 82933},
47
+ 'South Dakota': {'region': 'Midwest', 'population': 884659, 'area': 199729},
48
+ 'Tennessee': {'region': 'South', 'population': 6833174, 'area': 109153},
49
+ 'Texas': {'region': 'South', 'population': 29145505, 'area': 695662},
50
+ 'Utah': {'region': 'West', 'population': 3271616, 'area': 219882},
51
+ 'Vermont': {'region': 'Northeast', 'population': 623989, 'area': 24906},
52
+ 'Virginia': {'region': 'South', 'population': 8631393, 'area': 110787},
53
+ 'Washington': {'region': 'West', 'population': 7693612, 'area': 184661},
54
+ 'West Virginia': {'region': 'South', 'population': 1792147, 'area': 62756},
55
+ 'Wisconsin': {'region': 'Midwest', 'population': 5851754, 'area': 169635},
56
+ 'Wyoming': {'region': 'West', 'population': 578759, 'area': 253335}
57
+ }
58
+
59
+ # Create a function to calculate population density
60
+ def calculate_density(population, area):
61
+ return population / area
62
+
63
+ # Create a function to plot the graph
64
+ def plot_graph(df, region):
65
+ plt.figure(figsize=(10, 5))
66
+ plt.bar(df.index, df['Population Density'])
67
+ plt.title(f'Population Density of States in {region} Region')
68
+ plt.xlabel('State')
69
+ plt.ylabel('Population Density')
70
+ plt.xticks(rotation=90)
71
+ plt.show()
72
+
73
+ # Group states by region and calculate the total population and area for each region
74
+ regions = {}
75
+ for state, data in states.items():
76
+ region = data['region']
77
+ population = data['population']
78
+ area = data['area']
79
+ if region not in regions:
80
+ regions[region] = {'population': population, 'area': area, 'states': []}
81
+ else:
82
+ regions[region]['population'] += population
83
+ regions[region]['area'] += area
84
+ regions[region]['states'].append(state)
85
+
86
+ # Calculate the population density for each state in each region
87
+ for region, data in regions.items():
88
+ population = data['population']
89
+ area = data['area']
90
+ states = data['states']
91
+ density = []
92
+ for state in states:
93
+ state_population = states[state]['population']
94
+ state_area = states[state]['area']
95
+ state_density = calculate_density(state_population, state_area)
96
+ density.append(state_density)
97
+ df = pd.DataFrame({'State': states, 'Population Density': density})
98
+ plot_graph(df, region)