Avanceret Plotning med Matplotlib og Seaborn
Stryg for at vise menuen
Når du arbejder med geografiske data, er effektiv visualisering afgørende for at afdække mønstre og formidle indsigter. Pythons matplotlib- og seaborn-biblioteker tilbyder kraftfulde værktøjer til at forbedre dine geografiske plots, så du kan tilpasse farver, tilføje informative signaturforklaringer, angive beskrivende titler og overlejre flere datalag. Ved at mestre disse teknikker kan du skabe tydelige, overbevisende kort og visualiseringer, der fremhæver vigtige geografiske sammenhænge.
Tilpasning af geografiske plots begynder ofte med at kontrollere udseendet af dine data. Du kan angive farver for at repræsentere forskellige kategorier eller værdier, justere gennemsigtighed for at synliggøre overlappende elementer og bruge signaturforklaringer til at forklare dine visuelle kodninger. Tilføjelse af titler og akseetiketter hjælper beskueren med hurtigt at fortolke dine plots. Overlejring af flere lag—såsom veje oven på administrative grænser—kan give dybere kontekst til din geografiske analyse.
12345678910111213141516171819202122232425262728293031323334import geopandas as gpd import matplotlib.pyplot as plt url = "https://naciscdn.org/naturalearth/110m/cultural/ne_110m_admin_0_countries.zip" world = gpd.read_file(url) # Create a plot with customizations fig, ax = plt.subplots(figsize=(12, 8)) # Plot countries, coloring by continent world.plot(column='CONTINENT', cmap='Set2', edgecolor='black', linewidth=0.5, legend=True, ax=ax, alpha=0.8) # Overlay country boundaries with a thicker line for emphasis world.boundary.plot(ax=ax, color='gray', linewidth=1.5) # Add a title and axis labels ax.set_title('World Countries by Continent', fontsize=18) ax.set_xlabel('Longitude') ax.set_ylabel('Latitude') # Customize legend position so it doesn't overlap the map leg = ax.get_legend() if leg: leg.set_bbox_to_anchor((1.15, 0.5)) plt.tight_layout() plt.show()
Kolonnenavnet i det officielle datasæt er CONTINENT
Ud over kortbaserede visualiseringer kan du også undersøge fordelingen af rumlige attributter — såsom areal, befolkning eller tæthed — ved hjælp af statistiske diagrammer. Seaborn er særligt nyttig til dette formål og giver mulighed for at oprette histogrammer, spredningsdiagrammer og mere, alt sammen med attraktive standardstile og nem tilpasning. Ved at kombinere seaborn med rumlige data kan du hurtigt identificere tendenser og afvigere i dine datasæt, hvilket understøtter dybere rumlig analyse.
1234567891011121314151617181920212223242526272829303132import geopandas as gpd import seaborn as sns import matplotlib.pyplot as plt # Load sample data directly from the official URL url = "https://naciscdn.org/naturalearth/110m/cultural/ne_110m_admin_0_countries.zip" world = gpd.read_file(url) # The official dataset doesn't have a pre-made 'area' column, so we calculate it. # Note: This calculates area in decimal degrees based on the WGS84 projection. world['area'] = world.geometry.area # Plot a histogram of country areas plt.figure(figsize=(10, 6)) # 'area' is our new custom column, kde=True adds the density curve sns.histplot(world['area'], bins=30, color='skyblue', kde=True) plt.title('Distribution of Country Areas') plt.xlabel('Area (sq. degrees)') plt.ylabel('Number of Countries') plt.tight_layout() plt.show() # Plot a scatter plot of population vs. area plt.figure(figsize=(10, 6)) # Adjusted column names to match the official dataset: 'POP_EST' and 'CONTINENT' sns.scatterplot(x='area', y='POP_EST', data=world, hue='CONTINENT', palette='Set2') plt.title('Country Population vs. Area by Continent') plt.xlabel('Area (sq. degrees)') plt.ylabel('Estimated Population') plt.legend(title='Continent', bbox_to_anchor=(1.05, 1), loc='upper left') plt.tight_layout() plt.show()
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat