Розширене візуалізування з Matplotlib та Seaborn
Свайпніть щоб показати меню
Під час роботи з просторовими даними ефективна візуалізація є ключовою для виявлення закономірностей і передачі аналітичних висновків. Бібліотеки Python matplotlib і seaborn надають потужні інструменти для вдосконалення просторових графіків, дозволяючи налаштовувати кольори, додавати інформативні легенди, встановлювати описові заголовки та накладати кілька шарів даних. Оволодівши цими техніками, можна створювати чіткі, виразні карти та візуалізації, які підкреслюють важливі просторові взаємозв'язки.
Налаштування просторових графіків часто починається з контролю зовнішнього вигляду даних. Можна вказувати кольори для представлення різних категорій або значень, регулювати прозорість для відображення перекриваючихся об'єктів і використовувати легенди для пояснення візуальних кодувань. Додавання заголовків і підписів до осей допомагає глядачам швидко інтерпретувати графіки. Накладання кількох шарів—наприклад, доріг поверх адміністративних меж—додає глибший контекст до просторового аналізу.
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()
Назва стовпця в офіційному наборі даних — CONTINENT
Окрім візуалізацій на основі карт, можна досліджувати розподіл просторових атрибутів — таких як площа, населення чи щільність — за допомогою статистичних графіків. Seaborn особливо корисний для цього, оскільки дозволяє створювати гістограми, точкові діаграми та інші графіки з привабливим стилем за замовчуванням і простим налаштуванням. Поєднуючи seaborn із просторовими даними, можна швидко виявляти тенденції та аномалії у ваших наборах даних, що сприяє глибшому просторовому аналізу.
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()
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат