Ga naar hoofdinhoud

Stapsgewijze gids voor het maken van kaarten in Python met de Plotly-bibliotheek

Laat je data eruit springen met schitterende kaarten gemaakt met Plotly in Python
· 7 min lezen

Verken met AI

Life Expectancy by Country

Kaarten worden al eeuwenlang gebruikt om mensen te helpen navigeren en hun omgeving te begrijpen. In het tijdperk van big data zijn kaarten een essentieel hulpmiddel voor datavisualisatie. Ze stellen ons in staat om data op een intuïtieve, interactieve en begrijpelijke manier te laten zien. Kaarten helpen patronen en verbanden te ontdekken die in andere soorten visualisaties lastig te zien zijn.

Plotly is een krachtige datavisualisatiebibliotheek voor Python waarmee je een breed scala aan interactieve visualisaties kunt maken, waaronder kaarten. Een van de voordelen van Plotly is dat het naadloos samenwerkt met andere Python-bibliotheken, zoals Pandas en NumPy. Dit maakt het eenvoudig om data te importeren en te bewerken en visualisaties te maken die zijn afgestemd op jouw specifieke behoeften. Wil je Plotly leren? Bekijk dan onze cursus Introduction to Data Visualization with Plotly in Python.

In deze tutorial leer je stap voor stap hoe je eenvoudige en interactieve kaarten maakt en aanpast met Plotly in Python. Je leert ook Choropleth-kaarten maken, een specifiek type kaart dat kleurcodering gebruikt om data voor specifieke geografische gebieden, zoals landen, staten of steden, weer te geven.

Veelvoorkomende Plotly-kaartvisualisaties

Laten we beginnen met een paar verschillende soorten Plotly-kaarten die je kunt maken.

ScatterGeo-plot

De functie Scattergeo() wordt gebruikt om een scatterplot op een geografische kaart te maken. Dat betekent dat je punten op een kaart kunt plotten waarbij elk punt een specifieke geografische locatie vertegenwoordigt, zoals een stad of een bezienswaardigheid.

Als je bijvoorbeeld een dataset hebt met de breedte- en lengtegraad van verschillende steden wereldwijd, kun je Scattergeo() gebruiken om elke stad op een wereldkaart te plotten.

Elk punt op de kaart geeft de locatie van een specifieke stad weer, en je kunt de grootte, kleur en vorm van elk punt aanpassen om verschillende kenmerken van de steden te representeren, zoals bevolking of temperatuur.

Deze functie wordt vaak gebruikt in datavisualisatie- en analysetoepassingen, zoals weersvoorspellingen, bevolkingsanalyse en zakelijke mapping. Het helpt je data betekenisvoller te visualiseren door de ruimtelijke verdeling van je datapunten te tonen en patronen of trends te benadrukken die in een tabel of grafiek niet zichtbaar zijn.

Voorbeeld: een ScatterGeo-plot maken in Plotly

import plotly.express as px
import pandas as pd


# Import data from USGS
data = pd.read_csv('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv')


# Drop rows with missing or invalid values in the 'mag' column
data = data.dropna(subset=['mag'])
data = data[data.mag >= 0]


# Create scatter map
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', #size='mag',
                     title='Earthquakes Around the World')
fig.show()

Output: 

first plotly output

Dit codevoorbeeld gebruikt Plotly om een interactieve geomap van aardbevingslocaties wereldwijd te maken. Het importeert aardbevingsdata van de USGS-website in een pandas DataFrame en verwijdert rijen met ontbrekende of ongeldige magnitudewaarden.

Vervolgens gebruikt de code de methode px.scatter_geo om een scattermap te maken die aardbevingslocaties toont, waarbij zwaardere aardbevingen in donkerdere kleuren worden weergegeven. De parameter hover_name is ingesteld om de locatienaam te tonen wanneer je over een marker zweeft.

Ten slotte stelt de code de kaarttitel in en toont de kaart met fig.show(). Dit type kaart kan worden gebruikt om aardbevingspatronen te verkennen en inzicht te krijgen in wereldwijde seismische activiteit.

Basisplots aanpassen

1. Wijzig de kleurenschaal: De parameter color in de functie scatter_geo koppelt de magnitude van de aardbevingen aan de kleur van de markers. Je kunt de kleurenschaal aanpassen om de magnitudewaarden beter weer te geven.

fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', color_continuous_scale='reds',
                     title='Earthquakes Around the World')
fig.show()

Output:

Output 2

2. Wijzig de markergrootte: Je kunt de grootte van de markers aanpassen om de magnitude van de aardbevingen beter weer te geven.

fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', size='mag', size_max=10,
                     title='Earthquakes Around the World')
fig.show()

Output:

Output 3

3. Wijzig de achtergrondkleur: Je kunt de achtergrondkleur van de kaart veranderen om deze visueel aantrekkelijker te maken.

fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', color_continuous_scale='reds',
                     title='Earthquakes Around the World')
fig.update_layout(geo=dict(bgcolor='black'))
fig.show()

Output 4

Wil je meer weten over de mogelijkheden voor visualisatie en geavanceerde aanpassingen in Plotly? Bekijk dan onze Python Plotly Express Tutorial: Unlock Beautiful Visualizations door Bekhruz Tuychiev.

De kaart opslaan als interactieve HTML

Je kunt een Plotly-figuur als HTML-bestand opslaan met de functie write_html() uit de module plotly.io. Hier is een voorbeeld:

import plotly.io as pio
pio.write_html(fig, file='earthquakes.html', auto_open=True)

Output 5

Choropleth-kaarten

Een choropleth-kaart is een type kaart dat verschillende kleuren of tinten gebruikt om datapunten in verschillende regio's, zoals landen, staten of provincies, weer te geven. In een choropleth-kaart wordt elke regio ingekleurd op basis van de waarde van een specifieke datavariabele, zoals bevolking, inkomen of temperatuur.

Choropleth-kaarten kun je voor allerlei toepassingen gebruiken, zoals verkiezingskaarten, demografische analyses en geografische datavisualisatie. Ze helpen je patronen en trends in je data te zien die in een tabel of grafiek niet meteen opvallen, en ze zijn een krachtig middel om informatie over te brengen aan je publiek.

Hoewel zowel de functies scatter_geo als Choropleth in Plotly worden gebruikt om geografische visualisaties te maken, verschillen ze in het type data waarvoor ze het meest geschikt zijn en de manier waarop die data op een kaart wordt weergegeven. De functie scatter_geo is het meest geschikt voor het plotten van individuele datapunten op een kaart, waarbij elk punt een specifieke geografische locatie vertegenwoordigt, zoals een stad, een bezienswaardigheid of een aardbeving.

Daarentegen wordt de functie Choropleth gebruikt om data te visualiseren die is geaggregeerd of gemiddeld over regio's, zoals landen, staten of provincies. Elke regio wordt gearceerd of ingekleurd op basis van de waarde van een specifieke datavariabele, zoals bevolkingsdichtheid, gemiddeld inkomen of werkloosheidspercentage.

Voorbeeld: een Choropleth-kaart maken in Plotly

import plotly.express as px
import pandas as pd


# Import data from GitHub
data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_with_codes.csv')


# Create basic choropleth map
fig = px.choropleth(data, locations='iso_alpha', color='gdpPercap', hover_name='country',
                    projection='natural earth', title='GDP per Capita by Country')
fig.show()

Output:

Output 6

Let op dat onze dataframe een tijdsdimensie year bevat. Die loopt van 1952 tot 2007. We kunnen deze dimensie gebruiken om de visualisatie te animeren. Zie het onderstaande voorbeeld.

Voorbeeld-dataset:

Sample Dataset

import plotly.express as px
import pandas as pd


# Import data from GitHub
data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_with_codes.csv')


# Create basic choropleth map
fig = px.choropleth(data, locations='iso_alpha', color='gdpPercap', hover_name='country',
                    projection='natural earth', animation_frame='year',
                    title='GDP per Capita by Country')
fig.show()

Output: 

Output 7

Conclusie

Kaarten zijn onmisbaar voor datavisualisatie in het tijdperk van big data. Plotly is een krachtige datavisualisatiebibliotheek voor Python waarmee je allerlei interactieve kaarten kunt maken. Met Scattergeo kun je datapunten plotten die overeenkomen met specifieke geografische locaties, terwijl Choropleth ideaal is voor het visualiseren van geaggregeerde data over verschillende dimensies zoals regio, stad, land, enzovoort.

Wil je meer geavanceerde aanpassingsopties in Plotly verkennen of meer leren over de mogelijkheden? Bekijk dan de Python Plotly Express Cheat Sheet, met een snel overzicht van de meest gebruikte Plotly-functies en -opties.

Moez Ali

Auteur

Moez Ali

Data scientist, oprichter en maker van PyCaret

Onderwerpen

Gerelateerd