generates a plot of the geographic graph with edges ei.


generates a plot with vertices vi and edges ej.

GeoGraphPlot[{vi vj ,}]

uses rules vivj to specify the graph.


displays the graph g with vertices at geographic locations on a map.


plots ei with features defined by the symbolic wrapper w.

Details and Options

  • GeoGraphPlot shows the network between locations on a map by placing geographic objects as the vertices and the connections between them as edges. The edges generally do not correspond to particular routes between the locations.
  • An undirected edge ei between vertices u and v can be given as uv, u<->v, UndirectedEdge[u,v] or TwoWayRule[u,v]. The character can be entered as ue.
  • A directed edge ei from u to v can be given as uv, u->v, DirectedEdge[u,v] or Rule[u,v]. The character can be entered as de.
  • The geographic vertices vi can be given in the following forms:
  • GeoPosition[{lat,lon}]latitude and longitude
    Entity[]geographic entity
    Dated[ent,date]dated entity
    Image[]geo-tagged image
  • The option VertexCoordinates can be used to specify geo locations for vertices that do not already contain them.
  • The following special wrappers can be used for vertices and edges:
  • Annotation[a,label]provide an annotation
    Button[a,action]define an action to execute when the element is clicked
    EventHandler[a,]define a general event handler for the element
    Hyperlink[a,uri]make the element act as a hyperlink
    Labeled[a,]display the element with labeling
    PopupWindow[a,cont]attach a popup window to the element
    StatusArea[a,label]display in the status area when the element is moused over
    Style[a,opts]show the element using the specified styles
    Tooltip[a,label]attach an arbitrary tooltip to the element
  • GeoGraphPlot has the same options as GeoGraphics with the following additions and changes:
  • AnnotationRules{}annotations for graph, edges and vertices
    DirectedEdgesFalsewhether to interpret Rule as DirectedEdge
    EdgeLabels Nonelabels and placements for edges
    EdgeLabelStyle Automaticstyle to use for edge labels
    EdgeShapeFunctionAutomaticgenerate graphic shapes for edges
    EdgeStyle Automaticstyles for edges
    GraphHighlight{}vertices and edges to highlight
    GraphHighlightStyleAutomaticstyle for highlight
    GraphLayout Automatichow to layout graph elements
    MethodAutomaticmethod to use
    PerformanceGoalAutomaticaspects of performance to try to optimize
    PlotStyleAutomaticgraphics directives to determine styles
    PlotTheme Automaticoverall theme for the graph
    VertexCoordinates Automaticcoordinates for vertices
    VertexLabels Nonelabels and placements for vertices
    VertexLabelStyle Automaticstyle to use for vertex labels
    VertexShape Automaticgraphic shape for vertices
    VertexShapeFunctionAutomaticgenerate graphic shapes for vertices
    VertexSize Automaticsize of vertices
    VertexStyle Automaticstyles for vertices
  • GraphLayout specifies where to draw the edges connecting geographic locations.
  • Possible settings for GraphLayout include:
  • Automaticautomatically compute edges
    "StraightLine"use straight lines as edges
    "Geodesic"use geodesics as edges
    "Rhumb"use Rhumb lines as edges
    "Driving","Walking","Cycling"transportation methods
  • By default, the edges generated by GeoGraphPlot are abstract paths, showing self-loops and multiple edges between two vertices when present in the graph.
  • If a travel path cannot be found between two vertices, the edge will use "StraightLine" instead.
  • EdgeShapeFunctionfunc specifies that each vertex should be rendered with the primitives provided by func[{pt1,pt2},vw], where pt1 and pt2 are the geographic locations of the vertices for the edge vw.
  • VertexCoordinates can use the following forms to provide geo locations to vertices:
  • {loc1,loc2,}place vertex v1 at location loc1 etc.
    GeoPosition[{pos1,pos2,}]array of geodetic positions
    {v1loc1,}place vertex v1 at location loc1 etc.
  • The loci in VertexCoordinates can be geo locations, entities, geo-tagged images, etc.
  • VertexLabelsAutomatic automatically labels vertices that are named locations. Vertices that are specified using latitude and longitude are left unlabeled.
  • Graph features themes affect the plot of vertices and edges. Feature themes include:
  • "LargeGraph"large graph
    "NameLabeled"classic graph
    "IndexLabeled"index-labeled graph


open allclose all

Basic Examples  (3)

Plot a graph of cities in Europe:

Use driving directions to compute the edges between cities:

The nearest neighbor graph for large cities in Illinois:

Scope  (29)

Data  (6)

Use geo entities as the vertices in a graph:

Use geo locations as the vertices in a graph:

Use directed edges to specify the graph:

Construct a network of international air routes:

Use geo-tagged images as graph vertices:

Use VertexCoordinates to position vertices:

Labeling  (5)

Use Labeled to label a particular edge:

Specify edge labels with the EdgeLabels option:

Label all the vertices:

Use Labeled to label a specific vertex:

Use VertexLabels to label a specific vertex:

Edge and Vertex Wrappers  (6)

Apply a tooltip to Paris:

Give colors for specific vertices:

Specify colors for specific edges:

Set actions by wrapping specific vertices:

Attach a Hyperlink to a specific edge:

Apply wrappers to vertices and edges:

Graph Styling  (12)

Style individual edges:

Style all edges:

Set the style for all vertex labels:

Color specific vertices:

Plot a directed graph:

Specify a GraphLayout:

Use a map of the world's coastlines for the background:

Use the orthographic projection for the map:

Use GeoRangePaddingNone to remove padding:

Use 350 kilometers of padding on each side of the map:

Show parallels and meridians:

Specify the spacing between them:

Specify parallel and meridians rendering:

Options  (31)

EdgeLabels  (6)

Label each edge with its index in the edge list:

Label each edge with its name:

Label each edge with its weight, in this case corresponding to the distance between vertices:

Label specific edges in a graph:

Use a tooltip to label the edge between Rome and Milan:

Place a label most of the way from Rome to Milan:

Position the bottom-left corner of the label at the edge position:

EdgeLabelStyle  (2)

Set the style for all edge labels:

Specify the style for individual vertex labels:

EdgeStyle  (1)

Style all edges:

GeoBackground  (1)

Use a vector map style as geo background:

GeoCenter  (1)

Plot a nearest US cities graph centered at the current location:

GeoGridLines  (1)

Show parallel and meridians:

GeoGridLinesStyle  (1)

Specify parallel and meridians rendering:

GeoModel  (1)

Use Mars as the reference body:

GeoProjection  (1)

Use the Mercator projection for the map:


Lambert azimuthal:

GeoRange  (2)

Specify the region to show:

Specify the corners of the geo range as geo positions:

GeoRangePadding  (2)

Use GeoRangePaddingNone to remove padding:

Use 350 kilometers of padding on each side of the map:

GraphLayout  (2)

Use geodesics as edges:

Use a transportation method as edges:

PlotTheme  (1)

Use a plot theme:

VertexCoordinates  (2)

Use VertexCoordinates to locate vertices:

Use VertexCoordinates to specify the location of a vertex:

VertexLabels  (2)

Label all vertices with the geo entity name:

Label individual vertices:

VertexLabelStyle  (2)

Set the style for all vertex labels:

Specify the style for individual vertex labels:

VertexShape  (1)

Use custom shapes for vertices:

Use images for vertices:

VertexSize  (1)

Use named sizes for the vertices:

VertexStyle  (1)

Set the style for all vertices:

Applications  (7)

A company is planning a fiber network for a number of Chicago suburbs. It only has the right of way for its fiber along certain corridors. Some of those corridors might be more expensive. Find the subgraph of connection corridors that connect every suburb with the lowest total cost:

Compute and plot the most cost effective way of connecting all the cities:

Show Chicago, Illinois, and the connections to its sister cities:

Visualize trade between countries:

Create a network between the largest cities in the United States:

Show the network:

Plot the friend graph for a Twitter account:

Find all the friends of friends of Stephen Wolfram in Twitter:

Construct the connectivity information:

Get the location information for the people in the network:

Plot the spread of languages around the world:

For each language spoken by more than 1 million people in a country, create an edge from the country of origin for that language:

Plot the USA Electric System Operating Network:

Properties & Relations  (10)

Use GraphPlot for non-geographic networks:

Use GeoGraphValuePlot to show the values on geographic networks:

Use GeoListPlot to show the locations of geographic locations and entities:

Use GeoBubbleChart to show values with scaled bubbles:

Use GeoRegionValuePlot to show values with colored regions:

Use GeoHistogram to aggregate locations into bins:

Use GeoSmoothHistogram to generate smooth densities from locations:

Use GeoVectorPlot and GeoStreamPlot for vector fields:

Draw contours on a map with GeoContourPlot:

Smoothly shade a map using color with GeoDensityPlot:

Wolfram Research (2021), GeoGraphPlot, Wolfram Language function,


Wolfram Research (2021), GeoGraphPlot, Wolfram Language function,


Wolfram Language. 2021. "GeoGraphPlot." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2021). GeoGraphPlot. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2022_geographplot, author="Wolfram Research", title="{GeoGraphPlot}", year="2021", howpublished="\url{}", note=[Accessed: 20-March-2023 ]}


@online{reference.wolfram_2022_geographplot, organization={Wolfram Research}, title={GeoGraphPlot}, year={2021}, url={}, note=[Accessed: 20-March-2023 ]}