Eine der wichtigsten Aufgaben für jemanden, der an Datensätzen mit Ländern, Städten usw. arbeitet, besteht darin, die Beziehungen zwischen dem physischen Standort seiner Daten und ihrem geografischen Kontext zu verstehen. Und eine solche Möglichkeit, die Daten zu visualisieren, ist die Verwendung von Folium .

Folium ist eine leistungsstarke Datenvisualisierungsbibliothek in Python, die hauptsächlich entwickelt wurde, um Benutzern bei der Visualisierung von Geodaten zu helfen. Mit Folium kann man eine Karte von jedem Ort auf der Welt erstellen. Folium ist eigentlich ein Python-Wrapper für leaflet.js, eine Javascript-Bibliothek zum Zeichnen interaktiver Karten.

Wir werden nun einen einfachen Weg sehen, Geodaten zu plotten und zu visualisieren. Wir werden einen Datensatz verwenden, der aus Arbeitslosenquoten in den USA besteht

Installation

Wenn Folium nicht installiert ist, kann man es einfach mit einem der folgenden Befehle installieren: 

$ pip install folium

OR

$ conda install -c conda-forge folium

Mit folium.Map() erstellen wir eine Basiskarte und speichern sie in einem Objekt. Diese Funktion verwendet Positionskoordinaten und Zoomwerte als Argumente.

Syntax: folium.Map( location,tiles= „OpenStreetMap“ zoom_start=4 )

Parameter:

  • location : Liste der Standortkoordinaten
  • Kacheln : Standard ist OpenStreetMap. Weitere Optionen: Tamen Terrain, Stamen Toner, Mapbox Bright etc.
  • zoom_start : int

Code:

Python3

# import the folium, pandas libraries
import folium
import pandas as pd
  
# initialize the map and store it in a m object
m = folium.Map(location = [40, -95],
               zoom_start = 4)
  
# show the map
m.save('my_map.html')

Ausgabe:

Dataset mit Pandas importieren:

Jetzt werden wir die Datensätze mit der Pandas - Bibliothek importieren.

Python3

# getting the data
url = (
    "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"
)
state_geo = f"{url}/us-states.json"
state_unemployment = f"{url}/US_Unemployment_Oct2012.csv"
state_data = pd.read_csv(state_unemployment)

Karte mit Datensatz erstellen:

Sobald wir alle Daten haben, die wir haben, werden wir diese Daten mithilfe von Choroplethenkarten visualisieren. Chloropleth-Karten stellen unterteilte Bereiche in verschiedenen Farben dar, basierend auf der statistischen Variable, die ihnen präsentiert wird. Hier verwenden wir die Arbeitslosenquote in den USA als Mittel, um Regionen in verschiedene Farben einzuteilen.

Mit folium.Choropleth() können wir die endgültige Karte zeichnen. Die Details jedes Attributs sind im Code selbst angegeben. Der Parameter „ Schlüssel an“ bezieht sich auf die Bezeichnung im JSON-Objekt (state_geo), das das Bundesstaatsdetail als Feature-ID an die Grenzinformationen jedes Landes angehängt hat. Unsere Zustände im Datenrahmen sollten mit der Feature-ID im JSON-Objekt übereinstimmen.

Syntax: folium.Choropleth(geo_data,name,data,columns,fill_color, fill_opacity, line_opacity, key_on,legend_name)

Parameter:

  • geo_data: ein Satz geografischer Regionen und ihrer Grenzkoordinaten
  • name: String (Name unserer Karte)
  • data: ein numerischer Wert für jede Region, der für die Farbe verwendet wird
  • Spalten: Liste (Spalten, an denen wir arbeiten müssen)
  • fill_color: Farbe der Karte, zB: YlGn
  • fill_opacity: Deckkraft der gefüllten Farben
  • line_opacity: Deckkraft der Randlinien
  • Legendenname: Zeichenkette

Schließlich können wir unsere Karte als HTML-Datei speichern.

Python3

folium.Choropleth(
    
      # geographical locations
    geo_data = state_geo,                     
    name = "choropleth",
    
      # the data set we are using
    data = state_data,                        
    columns = ["State", "Unemployment"],     
    
      # YlGn refers to yellow and green
    fill_color = "YlGn",                      
    fill_opacity = 0.7,
    line_opacity = .1,
      key_on = "feature.id",
    legend_name = "Unemployment Rate (%)",
).add_to(m)                                 
  
m.save('final_map.html')

Ausgabe: