Adding a legend

Next, we are going to convert the area in sq. km by dividing it to 10^6 i.e (1000000). Output can be seen in variable explorer in the “world_data” variable.

We can add a legend to our world map along with a label using plot() arguments

  • legend: bool (default False). Plot a legend. Ignored if no column is given, or if color is given.
  • legend_kwds: dict (default None). Keyword arguments to pass to matplotlib.pyplot.legend() or matplotlib.pyplot.colorbar(). Additional accepted keywords when scheme is specified:
    • fmt: string. A formatting specification for the bin edges of the classes in the legend. For example, to have no decimals: {“fmt”: “{:.0f}”}.
    • labels: list-like. A list of legend labels to override the auto-generated labels. Needs to have the same number of elements as the number of classes (k).
    • interval: boolean (default False). An option to control brackets from mapclassify legend. If True, open/closed interval brackets are shown in the legend.

Example:

Python3




import geopandas as gpd
  
# Reading the world shapefile
world_data = gpd.read_file(r'world.shp')
  
world_data = world_data[['NAME', 'geometry']]
  
# Calculating the area of each country
world_data['area'] = world_data.area
  
# Removing Antarctica from GeoPandas GeoDataframe
world_data = world_data[world_data['NAME'] != 'Antarctica']
world_data.plot()
  
# Changing the projection
current_crs = world_data.crs
world_data.to_crs(epsg=3857, inplace=True)
world_data.plot(column='NAME', cmap='hsv')
  
# Re-calculate the areas in Sq. Km.
world_data['area'] = world_data.area/1000000
  
# Adding a legend
world_data.plot(column='area', cmap='hsv', legend=True,
                legend_kwds={'label': "Area of the country (Sq. Km.)"}, 
                figsize=(7, 7))


Output:

Working with Geospatial Data in Python

Spatial data, also known as geospatial data, GIS data, or geodata, is a type of numeric data that defines the geographic location of a physical object, such as a building, a street, a town, a city, a country, or other physical objects, using a geographic coordinate system. You may determine not just the position of an object, but also its length, size, area, and shape using spatial data.

To work with geospatial data in python we need the GeoPandas & GeoPlot library

GeoPandas is an open-source project to make working with geospatial data in python easier. GeoPandas extends the data types used by pandas to allow spatial operations on geometric types. Geometric operations are performed shapely. Geopandas further depends on fiona for file access and matplotlib for plotting. GeoPandas depends on its spatial functionality on a large geospatial, open-source stack of libraries (GEOS, GDAL, and PROJ). See the Dependencies section below for more details. 

Required dependencies:

  • numpy
  • pandas (version 0.24 or later)
  • shapely (interface to GEOS)
  • fiona (interface to GDAL)
  • pyproj (interface to PROJ; version 2.2.0 or later)

Further, optional dependencies are:

  • rtree (optional; spatial index to improve performance and required for overlay operations; interface to libspatialindex)
  • psycopg2 (optional; for PostGIS connection)
  • GeoAlchemy2 (optional; for writing to PostGIS)
  • geopy (optional; For plotting, these additional for geocoding)

packages may be used:

  • matplotlib (>= 2.2.0)
  • mapclassify (>= 2.2.0)

Geoplot is a geospatial data visualization library for data scientists and geospatial analysts that want to get things done quickly. Below we’ll cover the basics of Geoplot and explore how it’s applied. Geoplot is for Python 3.6+ versions only.

Note: Please install all the dependencies and modules for the proper functioning of the given codes.

Similar Reads

Installation

Installing can be done through Anaconda:...

Reading Shapefile

First, we will import the geopandas library and then read our shapefile using the variable “world_data”. Geopandas can read almost any vector-based spatial data format including ESRI shapefile, GeoJSON files and more using the command:...

Plotting

...

Selecting Columns

If you want to check which type of data you are using then go to the console and type “type(world_data)” which tells you that it’s not pandas data, it’s a geopandas geodata. Next, we are going to plot those GeoDataFrames using plot() method....

Calculating Area

...

Removing a Continent

If we see the “world_data” GeoDataFrame there are many columns(Geoseries) shown, you can choose specific Geoseries by:...

Visualizing a specific Country

...

Coordinate Reference System

We can calculate the area of each country using geopandas by creating a new column “area” and using the area property....

Using Color Maps (cmap)

...

Adding a legend

We can remove a specific element from the Geoseries. Here we are removing the continent named “Antarctica” from the “Name” Geoseries....

Resizing the legend

...

Polyplot and Pointplot Using Geoplot Library

We can visualize/plot a specific country by selecting it. In the below example, we are selecting “India” from the “NAME” column....

Choropleth in Geoplot

...

KDE Plot in Geoplot

We can check our current Coordinate System using Geopandas CRS i.e Coordinates Reference System. Also, we can change it to a projection coordination system. The Coordinate Reference System (CRS) is represented as a pyproj.CRS object. We can check current CRS using the following syntax....

Sankey in Geoplot

...

Contact Us