Skip to content

Interaktive Karten in Streamlit anzeigen: Einfache Tutorials und Beispiele | st.map

Updated on

Streamlit hat die Art und Weise revolutioniert, wie wir Datenanwendungen erstellen. Es handelt sich um eine leistungsstarke Open-Source-Python-Bibliothek, mit der Datenwissenschaftler und Entwickler interaktive Webanwendungen mühelos erstellen können. Eine seiner beeindruckendsten Funktionen ist st.map, eine Funktion, mit der Benutzer interaktive Karten erstellen und anzeigen können. Dieser Artikel geht auf die Feinheiten von st.map ein und bietet Ihnen praktische Beispiele und Tutorials, um Ihre Datenvisualisierungsfähigkeiten zu verbessern.

In der Welt der Datenanalyse und des Maschinenlernens spielt Ortsdaten eine entscheidende Rolle. Ob es darum geht, die Ausbreitung einer Krankheit zu verfolgen, Verkehrsströme zu analysieren oder Kundendemografie zu verstehen, Karten stellen eine visuelle Darstellung dar, die leicht zu verstehen und zu interpretieren ist. Die st.map-Funktion von Streamlit ist ein Tool, mit dem sich diese Standortdaten problemlos darstellen lassen.

Verständnis von st.map in Streamlit

Was ist st.map in Streamlit?

In Streamlit ist st.map eine Funktion, mit der Sie eine Karte erstellen und Datenpunkte darauf plotten können. Es handelt sich um einen Wrapper für die folium-Bibliothek, eine leistungsstarke Python-Bibliothek zur Visualisierung geospatialer Daten. Die st.map-Funktion nimmt ein pandas DataFrame entgegen, das entweder benannte Spalten "lat" und "lon" oder "latitude" und "longitude" enthält, und plottet es auf einer Karte.

import streamlit as st
import pandas as pd
 
## Erstellen Sie ein Beispieldatenframe mit Breiten- und Längengradwerten
data = pd.DataFrame({
    'latitude': [37.7749, 34.0522, 40.7128],
    'longitude': [-122.4194, -118.2437, -74.0060]
})
 
## Erstellen Sie eine Karte mit den Daten
st.map(data)

Dieser einfache Code erstellt eine Karte und plottet die Datenpunkte des DataFrames darauf. Die Karte zentriert sich automatisch um die Datenpunkte und passt den Zoom entsprechend an.

Karten in Streamlit anzeigen

Das Anzeigen von Karten in Streamlit ist so einfach wie das Aufrufen der st.map-Funktion mit den entsprechenden Daten. Um jedoch das Beste aus dieser Funktion herauszuholen, ist es wichtig zu verstehen, wie man die Daten manipuliert und die Karte an Ihre Bedürfnisse anpasst.

Sie können beispielsweise den Zoomlevel der Karte manuell anpassen, indem Sie einen Integer-Wert an den Parameter zoom übergeben. Ein höherer Wert zoomt näher an die Datenpunkte heran, während ein niedrigerer Wert herauszoomt.

## Erstellen Sie eine Karte mit einem bestimmten Zoomlevel
st.map(data, zoom=10)

Hinzufügen von GeoJSON-Karten zur Streamlit-App

Was ist GeoJSON?

GeoJSON ist ein Format zur Codierung verschiedener geografischer Datenstrukturen. Es unterstützt verschiedene geografische Datentypen, darunter Punkt, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon und GeometryCollection. GeoJSON verwendet den JSON-Standard zur Erstellung von Karten, was seine Verwendung in einer Vielzahl von Anwendungen erleichtert.

Hinzufügen von GeoJSON-Karten zur Streamlit-App

Das Hinzufügen von GeoJSON-Karten zu Ihrer Streamlit-App umfasst das Einlesen der GeoJSON-Daten in ein DataFrame und das Übergeben dieses DataFrames an die st.map-Funktion. Hier ist ein Beispiel, wie Sie dies tun können:

import geopandas as gpd
 
# Lesen Sie GeoJSON-Daten in ein GeoDataFrame ein
gdf = gpd.read_file('Pfad_zu_ihrer_geojson_datei.geojson')
 
# Konvertieren Sie das GeoDataFrame in ein DataFrame
df = pd.DataFrame(gdf)
 
# Erstellen Sie eine Karte mit den GeoJSON-Daten
st.map(df)

In diesem Beispiel verwenden wir die geopandas-Bibliothek, um die GeoJSON-Daten in ein GeoDataFrame einzulesen. Wir konvertieren dieses GeoDataFrame dann in ein reguläres pandas DataFrame, das wir an die st.map-Funktion übergeben können.

Verbesserung von Karten mit st.map-Funktionen

Die st.map-Funktion von Streamlit bietet verschiedene Funktionen, mit denen Sie Ihre Karten verbessern können. Dazu gehört das Hinzufügen benutzerdefinierter Marker, das Anpassen des Zoomlevels und das automatische Zentrieren der Karte um Ihre Datenpunkte.

Hinzufügen von benutzerdefinierten Markern

Das Hinzufügen von benutzerdefinierten Markern zu Ihrer Karte kann Ihnen helfen, bestimmte Datenpunkte hervorzuheben. Um benutzerdefinierte Marker hinzuzufügen, müssen Sie ein separates DataFrame erstellen, das die Breiten- und Längengradwerte der Punkte enthält, die Sie hervorheben möchten.

# Erstellen Sie ein DataFrame mit den Punkten, die Sie hervorheben möchten
highlight = pd.DataFrame({
    'latitude': [37.7749],
    'longitude': [-122.4194]
})
 
# Fügen Sie die Hervorhebungspunkte zur Karte hinzu
st.map(data, highlight)

In diesem Beispiel heben wir einen einzelnen Punkt auf der Karte hervor. Das DataFrame "highlight" enthält die Breiten- und Längengradwerte dieses Punktes. Wir übergeben dann dieses DataFrame zusammen mit unseren ursprünglichen Daten an die st.map-Funktion.

Zoomen und automatisches Zentrieren

Die st.map-Funktion zentriert die Karte automatisch um Ihre Datenpunkte und passt den Zoomlevel an, um alle Punkte zu erfassen. Sie können jedoch auch manuell den Zoomlevel und das Zentrum der Karte anpassen.

# Erstellen Sie eine Karte mit einem bestimmten Zoomlevel und Zentrum
st.map(data, zoom=10, center=[37.7749, -122.4194])

In diesem Beispiel setzen wir den Zoomlevel auf 10 und zentrieren die Karte um die Koordinaten [37,7749, -122,4194]. Der center-Parameter erwartet eine Liste mit zwei Werten: der Breiten- und Längengrad des Punktes, um den Sie die Karte zentrieren möchten.

Behandlung von Problemen mit st.map

Obwohl st.map ein leistungsstarkes Werkzeug ist, können beim Verwenden Probleme auftreten. Eine häufige Problemstellung ist der Fehler "st.map funktioniert nicht". Dies tritt in der Regel auf, wenn das DataFrame, das an st.map übergeben wird, nicht die korrekten Spalten enthält oder die Spalten nicht korrekt benannt sind. Denken Sie daran, dass st.map ein DataFrame mit entweder benannten Spalten "lat" und "lon" oder "latitude" und "longitude" erfordert.

Wenn Sie auf dieses Problem stoßen, überprüfen Sie Ihr DataFrame, um sicherzustellen, dass es die richtigen Spalten enthält und diese entsprechend benannt sind.

Interaktive Karten in Streamlit erstellen

Interaktive Karten sind ein leistungsstarkes Werkzeug für die Datenvisualisierung. Sie ermöglichen es Benutzern, hinein- und herauszuzoomen, verschiedene Regionen zu verschieben und sogar auf Datenpunkte zu klicken, um weitere Informationen zu erhalten. Mit der st.map-Funktion von Streamlit können Sie diese interaktiven Karten ganz einfach erstellen.

Einfache Möglichkeiten zur Einbindung interaktiver Karten

Das Einbinden einer interaktiven Karte in Ihre Streamlit-App ist so einfach wie das Übergeben eines DataFrame mit Breiten- und Längenwerten an die st.map-Funktion. Sie können jedoch auch Ihre Karten verbessern, indem Sie Interaktivität wie benutzerdefinierte Marker, Pop-up-Informationen und mehr hinzufügen.

Beispielweise können Sie eine Popup-Funktion hinzufügen, die beim Klicken auf einen Datenpunkt weitere Informationen über diesen darstellt. Dies kann durch Hinzufügen einer zusätzlichen Spalte zu Ihrem DataFrame mit den gewünschten Informationen erfolgen.

# Fügen Sie eine zusätzliche Spalte für Pop-up-Informationen hinzu
data['info'] = ['San Francisco', 'Los Angeles', 'New York']
 
# Erstellen Sie eine Karte mit den Daten
st.map(data)

In diesem Beispiel wird beim Klicken auf einen Datenpunkt der Name der Stadt angezeigt.

Karten anzeigen mit Streamlit und Folium

Während st.map ein leistungsstarkes Werkzeug zum Erstellen von Karten ist, können Sie auch andere Bibliotheken wie Folium verwenden, um komplexere Karten zu erstellen. Folium ist eine Python-Bibliothek, mit der Sie interaktive Karten mit Leaflet.js erstellen können, einer beliebten Open-Source-JavaScript-Bibliothek für mobilitätsfreundliche interaktive Karten.

Um eine Folium-Karte in Streamlit anzuzeigen, können Sie die Funktion st.pydeck_chart verwenden. Hier ist ein Beispiel:

import folium
 
# Erstellen Sie eine Folium-Karte
m = folium.Map(location=[37.7749, -122.4194], zoom_start=10)
 
# Zeigen Sie die Karte in Streamlit an
st.pydeck_chart(m)

In diesem Beispiel erstellen wir eine Folium-Karte, die um die Koordinaten [37.7749, -122.4194] herum zentriert ist und einen Zoom-Level von 10 hat. Wir zeigen dann diese Karte in Streamlit mit der Funktion st.pydeck_chart an.

Das ist nur die Spitze des Eisbergs, wenn es um die Erstellung interaktiver Karten in Streamlit geht. Mit der Kraft von Python und Bibliotheken wie Streamlit und Folium sind die Möglichkeiten endlos. Egal, ob Sie ein Datenwissenschaftler sind, der Daten visualisieren möchte, oder ein Entwickler, der eine datengetriebene Web-App erstellt, interaktive Karten sind ein leistungsstarkes Werkzeug, das Sie in Ihrem Arsenal haben sollten.

Verbessern Ihrer Datenvisualisierung mit Streamlit

Die Funktion st.map von Streamlit ist ein leistungsstarkes Werkzeug für die Datenvisualisierung. Durch die Möglichkeit, interaktive Karten zu erstellen, bietet es eine visuelle Darstellung Ihrer Daten, die leicht verständlich und interpretierbar ist. In diesem Abschnitt werden einige fortgeschrittene Funktionen von st.map und deren Verwendung zur Verbesserung Ihrer Datenvisualisierung behandelt.

Fortgeschrittene Funktionen von st.map

Eine der wichtigsten Funktionen von st.map ist die Fähigkeit, große Datensätze zu verarbeiten. Es kann Tausende von Datenpunkten auf einer Karte effizient darstellen, ohne Ihre App zu verlangsamen. Dies macht es zu einem idealen Werkzeug für die Visualisierung großer Datensätze.

Eine weitere fortgeschrittene Funktion von st.map ist seine Kompatibilität mit anderen Python-Bibliotheken. Sie können Bibliotheken wie pandas für die Datenmanipulation, numpy für numerische Berechnungen und matplotlib für zusätzliche Visualisierungsoptionen verwenden. Diese Interoperabilität macht st.map zu einem vielseitigen Werkzeug für die Datenvisualisierung.

Beispiele für Datenvisualisierung mit st.map

Um die Leistung von st.map zu veranschaulichen, werfen wir einen Blick auf einige Beispiele für Datenvisualisierung. Angenommen, wir haben einen Datensatz mit Airbnb-Listings in New York City. Wir können st.map verwenden, um diese Listings auf einer Karte darzustellen und Einblicke in die Verteilung der Airbnb-Listings in der Stadt zu gewinnen.

# Laden Sie den Datensatz
data = pd.read_csv('nyc_airbnb_listings.csv')
 
# Erstellen Sie eine Karte mit den Daten
st.map(data)

In diesem Beispiel stellt jeder Datenpunkt auf der Karte ein Airbnb-Listing dar. Durch die Visualisierung dieser Daten auf einer Karte können wir leicht erkennen, in welchen Bereichen von New York City die meisten Airbnb-Listings vorhanden sind.

Erstellen Sie interaktive Datenvisualisierungen in Streamlit einfach mit PyGWalker

PyGWalker (opens in a new tab) ist auch ein großartiges Werkzeug, das als Alternative zu Streamlit AgGrid Wunder wirkt.

PyGWalker + Streamlit Online Demo (opens in a new tab)

PyGWalker (opens in a new tab) ist eine Python-Bibliothek, mit der Sie problemlos eine tableauähnliche Benutzeroberfläche in Ihre eigene Streamlit-App einbinden können.

Schauen Sie sich dieses erstaunliche Video von Wie man Daten mit PyGWalker in Python erkundet (opens in a new tab) an, das die detaillierten Schritte zur Stärkung Ihrer Streamlit-App mit dieser leistungsstarken Datenvisualisierungs-Python-Bibliothek zeigt!


Ein besonderer Dank geht an Sven und seinen großartigen Beitrag (opens in a new tab) zur PyGWalker-Community!

Außerdem können Sie auch diese Ressourcen überprüfen:

Visualisieren Sie Daten in Streamlit mit PyGWalker (opens in a new tab)

Fazit

Die Funktion st.map von Streamlit ist ein leistungsstarkes Werkzeug zum Erstellen interaktiver Karten und zur Visualisierung geografischer Daten. Egal, ob Sie ein Datenwissenschaftler sind, der Daten visualisieren möchte, oder ein Entwickler, der eine datengetriebene Web-App erstellt, bietet st.map eine einfache und effiziente Möglichkeit, interaktive Karten zu erstellen. Mit seinen fortgeschrittenen Funktionen und der Kompatibilität mit anderen Python-Bibliotheken ist st.map ein vielseitiges Werkzeug, das Ihre Datenvisualisierung und -analyse verbessern kann.

Häufig gestellte Fragen

Wie erstellt man eine Karte in Streamlit?

Das Erstellen einer Karte in Streamlit ist unkompliziert. Sie benötigen ein pandas DataFrame, das Längen- und Breitengradwerte enthält. Anschließend können Sie dieses DataFrame an die st.map-Funktion übergeben, um eine Karte zu erstellen.

Wie erstellt man eine interaktive Standortkarte?

Sie können eine interaktive Standortkarte in Streamlit mit der st.map-Funktion erstellen. Diese Funktion erstellt eine Karte und zeichnet Datenpunkte darauf. Die Karte ist interaktiv, das bedeutet, Sie können hinein- und herauszoomen und über verschiedene Regionen schwenken. Sie können auch benutzerdefinierte Marker und Pop-up-Informationen hinzufügen, um die Interaktivität der Karte zu verbessern.

Hat Streamlit eine API?

Ja, Streamlit hat eine einfache und intuitive API, mit der Sie interaktive Webanwendungen erstellen können. Die API bietet verschiedene Funktionen zum Erstellen verschiedener Arten von Visualisierungen, einschließlich Karten, Diagrammen und Tabellen. Sie können die API auch verwenden, um Interaktivität zu Ihrer App hinzuzufügen, wie z.B. Schaltflächen, Schieberegler und Texteingabe.