Spaces:
Runtime error
Runtime error
File size: 8,522 Bytes
ceac54d 5b483cc ceac54d 8353426 ceac54d a0cf5f2 ceac54d a0cf5f2 ceac54d 5b483cc ceac54d 5b483cc ceac54d b54d821 5b483cc b54d821 5b483cc ceac54d 5b483cc b54d821 5b483cc 8353426 a0cf5f2 8353426 18e980a 8353426 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# Import necessary libraries
import pandas as pd
import streamlit as st
import matplotlib.pyplot as plt
import pydeck as pdk
states = {
'Alabama': {'region': 'South', 'population': 4903185, 'area': 135767, 'lat': 32.806671, 'lon': -86.791130},
'Alaska': {'region': 'West', 'population': 731545, 'area': 1723337, 'lat': 61.370716, 'lon': -152.404419},
'Arizona': {'region': 'West', 'population': 7278717, 'area': 295234, 'lat': 33.729759, 'lon': -111.431221},
'Arkansas': {'region': 'South', 'population': 3017804, 'area': 137732, 'lat': 34.969704, 'lon': -92.373123},
'California': {'region': 'West', 'population': 39538223, 'area': 423967, 'lat': 36.116203, 'lon': -119.681567},
'Colorado': {'region': 'West', 'population': 5773714, 'area': 269601, 'lat': 39.059811, 'lon': -105.311104},
'Connecticut': {'region': 'Northeast', 'population': 3605944, 'area': 14357, 'lat': 41.597782, 'lon': -72.755371},
'Delaware': {'region': 'South', 'population': 989948, 'area': 6446, 'lat': 39.318523, 'lon': -75.507141},
'Florida': {'region': 'South', 'population': 21538187, 'area': 170312, 'lat': 27.766279, 'lon': -81.686783},
'Georgia': {'region': 'South', 'population': 10711908, 'area': 153910, 'lat': 33.040619, 'lon': -83.643074},
'Hawaii': {'region': 'West', 'population': 1415872, 'area': 28314, 'lat': 21.094318, 'lon': -157.498337},
'Idaho': {'region': 'West', 'population': 1826156, 'area': 216443, 'lat': 44.240459, 'lon': -114.478828},
'Illinois': {'region': 'Midwest', 'population': 12671821, 'area': 149995, 'lat': 40.349457, 'lon': -88.986137},
'Indiana': {'region': 'Midwest', 'population': 6732219, 'area': 94326, 'lat': 39.849426, 'lon': -86.258284},
'Iowa': {'region': 'Midwest', 'population': 3155070, 'area': 145746, 'lat': 42.011539, 'lon': -93.210526},
'Kansas': {'region': 'Midwest', 'population': 2913314, 'area': 213099, 'lat': 38.526600, 'lon': -96.726486},
'Kentucky': {'region': 'South', 'population': 4467673, 'area': 104656, 'lat': 37.668140, 'lon': -84.670067},
'Louisiana': {'region': 'South', 'population': 4648794, 'area': 135659, 'lat': 31.169546, 'lon': -91.867805},
'Maine': {'region': 'Northeast', 'population': 1362359, 'area': 91634, 'lat': 44.693947, 'lon': -69.381927},
'Maryland': {'region': 'South', 'population': 6177224, 'area': 32131, 'lat': 39.063946, 'lon': -76.802101},
'Massachusetts': {'region': 'Northeast', 'population': 7029917, 'area': 27336, 'lat': 42.230171, 'lon': -71.530106},
'Michigan': {'region': 'Midwest', 'population': 10077331, 'area': 250487, 'lat': 43.326618, 'lon': -84.536095},
'Minnesota': {'region': 'Midwest', 'population': 5706494, 'area': 225163, 'lat': 45.694454, 'lon': -93.900192},
'Mississippi': {'region': 'South', 'population': 2989260, 'area': 125438, 'lat': 32.741646, 'lon': -89.678697},
'Missouri': {'region': 'Midwest', 'population': 6169270, 'area': 180540, 'lat': 38.456085, 'lon': -92.288368},
'Montana': {'region': 'West', 'population': 1084225, 'area': 380831, 'lat': 46.921925, 'lon': -110.454353},
'Nebraska': {'region': 'Midwest', 'population': 1952570, 'area': 200330, 'lat': 41.125370, 'lon': -98.268082},
'Nevada': {'region': 'West', 'population': 3139658, 'area': 286380, 'lat': 38.313515, 'lon': -117.055374},
'New Hampshire': {'region': 'Northeast', 'population': 1371246, 'area': 24214, 'lat': 43.452492, 'lon': -71.563896},
'New Jersey': {'region': 'Northeast', 'population': 9288994, 'area': 22591, 'lat': 40.298904, 'lon': -74.521011},
'New Mexico': {'region': 'West', 'population': 2117522, 'area': 314917, 'lat': 34.840515, 'lon': -106.248482},
'New York': {'region': 'Northeast', 'population': 20215751, 'area': 141297, 'lat': 42.165726, 'lon': -74.948051},
'North Carolina': {'region': 'South', 'population': 10488084, 'area': 139391, 'lat': 35.630066, 'lon': -79.806419},
'North Dakota': {'region': 'Midwest', 'population': 762062, 'area': 183108, 'lat': 47.528912, 'lon': -99.784012},
'Ohio': {'region': 'Midwest', 'population': 11689100, 'area': 116098, 'lat': 40.388783, 'lon': -82.764915},
'Oklahoma': {'region': 'South', 'population': 3953823, 'area': 181037, 'lat': 35.565342, 'lon': -96.928917},
'Oregon': {'region': 'West', 'population': 4217737, 'area': 254799, 'lat': 44.572021, 'lon': -122.070938},
'Pennsylvania': {'region': 'Northeast', 'population': 12801989, 'area': 119280, 'lat': 40.590752, 'lon': -77.209755},
'Rhode Island': {'region': 'Northeast', 'population': 1097379, 'area': 4001, 'lat': 41.680893, 'lon': -71.511780},
'South Carolina': {'region': 'South', 'population': 5148714, 'area': 82933, 'lat': 33.856892, 'lon': -80.945007},
'South Dakota': {'region': 'Midwest', 'population': 884659, 'area': 199729, 'lat': 44.299782, 'lon': -99.438828},
'Tennessee': {'region': 'South', 'population': 6833174, 'area': 109153, 'lat': 35.747845, 'lon': -86.692345},
'Texas': {'region': 'South', 'population': 29145505, 'area': 695662, 'lat': 31.054487, 'lon': -97.563461},
'Utah': {'region': 'West', 'population': 3271616, 'area': 219882, 'lat': 40.150032, 'lon': -111.862434},
'Vermont': {'region': 'Northeast', 'population': 623989, 'area': 24906, 'lat': 44.045876, 'lon': -72.710686},
'Virginia': {'region': 'South', 'population': 8631393, 'area': 110787, 'lat': 37.769337, 'lon': -78.170400},
'Washington': {'region': 'West', 'population': 7693612, 'area': 184661, 'lat': 47.400902, 'lon': -121.490494},
'West Virginia': {'region': 'South', 'population': 1792147, 'area': 62756, 'lat': 38.491000, 'lon': -80.954570},
'Wisconsin': {'region': 'Midwest', 'population': 5851754, 'area': 169635, 'lat': 44.268543, 'lon': -89.616508},
'Wyoming': {'region': 'West', 'population': 578759, 'area': 253335, 'lat': 42.755966, 'lon': -107.302490}
}
# Create a function to calculate population density
def calculate_density(population, area):
return population / area
# Create a function to plot the graph
def plot_graph(df, region):
plt.figure(figsize=(10, 5))
plt.bar(df['State'], df['Population Density'])
plt.title(f'Population Density of States in {region} Region')
plt.xlabel('State')
plt.ylabel('Population Density')
plt.xticks(rotation=90)
plt.show()
# Group states by region and calculate the total population and area for each region
regions = {}
for state, data in states.items():
region = data['region']
population = data['population']
area = data['area']
if region not in regions:
regions[region] = {'population': population, 'area': area, 'states': []}
else:
regions[region]['population'] += population
regions[region]['area'] += area
regions[region]['states'].append(state)
# Calculate the population density for each state in each region and create dataframes
dataframes = []
for region, data in regions.items():
population = data['population']
area = data['area']
states_in_region = data['states']
densities = []
for state in states_in_region:
state_data = states[state]
state_population = state_data['population']
state_area = state_data['area']
state_density = calculate_density(state_population, state_area)
densities.append(state_density)
df = pd.DataFrame({'State': states_in_region, 'Population Density': densities})
dataframes.append(df)
plot_graph(df, region)
# Use Streamlit to display dataframes
for df in dataframes:
st.write(df)
# Add lat and lon to your states data
#states = {
# 'Alabama': {'region': 'South', 'population': 4903185, 'area': 135767, 'lat': 32.806671, 'lon': -86.791130},
# 'Alaska': {'region': 'West', 'population': 731545, 'area': 1723337, 'lat': 61.370716, 'lon': -152.404419},
# # Continue for all states...
#}
# Create dataframe from states data
df = pd.DataFrame.from_dict(states, orient='index').reset_index()
df.columns = ['State', 'Region', 'Population', 'Area', 'Latitude', 'Longitude']
# Define initial viewport for the deckgl map
view_state = pdk.ViewState(
longitude=-97.6,
latitude=38.5,
zoom=3,
pitch=50,
)
# Define deckgl layer
layer = pdk.Layer(
"ScatterplotLayer",
data=df,
get_position='[Longitude, Latitude]',
get_radius='Area',
get_fill_color='[190, 30, 0, 140]',
pickable=True,
auto_highlight=True,
)
# Render the deckgl map in the Streamlit app
st.pydeck_chart(pdk.Deck(layers=[layer], initial_view_state=view_state))
|