# Streamlined version of the Streamlit app code import pandas as pd import pydeck as pdk import streamlit as st # SETTING PAGE CONFIG TO WIDE MODE AND ADDING A TITLE AND FAVICON st.set_page_config(layout="wide", page_title="Data Visualization", page_icon=":chart_with_upwards_trend:") # Function to load data def load_data(): path = "ipc.csv" data = pd.read_csv( path, names=["Lat", "Lon", "Number", "Census Tract #"], skiprows=1 ) return data # Function to display the map def map(data, lat, lon, zoom): tooltip = {"html": "Census Tract #: {Census Tract #}
Number: {Number}"} st.write( pdk.Deck( map_style="mapbox://styles/mapbox/dark-v9", initial_view_state={"latitude": lat, "longitude": lon, "zoom": zoom, "pitch": 50}, layers=[ pdk.Layer( "HexagonLayer", data=data, get_position=["Lon", "Lat"], get_elevation="Number", radius=100, elevation_scale=4, elevation_range=[0, 1000], pickable=True, extruded=True, ), ], tooltip=tooltip ) ) # Main app execution part data = load_data() midpoint = (data['Lat'].mean(), data['Lon'].mean()) st.title("Interactive Data Visualization") map(data, midpoint[0], midpoint[1], 11)