Avancerad Visualisering med Matplotlib och Seaborn
Svep för att visa menyn
Vid arbete med geografiska data är effektiv visualisering avgörande för att upptäcka mönster och förmedla insikter. Pythons bibliotek matplotlib och seaborn erbjuder kraftfulla verktyg för att förbättra dina geografiska diagram, vilket gör det möjligt att anpassa färger, lägga till informativa förklaringar, ange beskrivande titlar och överlagra flera datalager. Genom att behärska dessa tekniker kan du skapa tydliga och övertygande kartor och visualiseringar som framhäver viktiga rumsliga samband.
Anpassning av geografiska diagram börjar ofta med att kontrollera utseendet på dina data. Du kan ange färger för att representera olika kategorier eller värden, justera transparens för att visa överlappande objekt och använda förklaringar för att förklara dina visuella kodningar. Att lägga till titlar och axelrubriker hjälper betraktaren att snabbt tolka dina diagram. Att överlagra flera lager—till exempel vägar ovanpå administrativa gränser—kan ge djupare kontext till din geografiska analys.
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()
Kolumnnamnet i den officiella datamängden är CONTINENT
Utöver kartbaserade visualiseringar kan du även vilja undersöka fördelningen av rumsliga attribut — såsom yta, befolkning eller densitet — med hjälp av statistiska diagram. Seaborn är särskilt användbart för detta ändamål och låter dig skapa histogram, spridningsdiagram och mer, allt med attraktiva standardstilar och enkel anpassning. Genom att kombinera seaborn med rumsliga data kan du snabbt identifiera trender och avvikare i dina dataset, vilket stödjer djupare rumslig analys.
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()
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal