geoist.vis package¶
Submodules¶
geoist.vis.giplt module¶
This module loads all functions from matplotlib.pyplot
, adds new
functions and overwrites some others (like contour()
,
pcolor()
, etc).
Warning
This module will be removed in v0.6. We recommend the use of
matplotlib.pyplot
module directly. Some of the geoist specific
functions will remain.
Grids
Grids are automatically reshaped and interpolated if desired or necessary.
2D objects
Interactive
Basemap (map projections)
Auxiliary
-
geoist.vis.giplt.
basemap
(area, projection, resolution='c')¶ Make a basemap to use when plotting with map projections.
Uses the matplotlib basemap toolkit.
Parameters:
- area : list
[west, east, south, north]
, i.e., the area of the data that is going to be plotted
- projection : str
- The name of the projection you want to use. Choose from:
- ‘ortho’: Orthographic
- ‘geos’: Geostationary
- ‘robin’: Robinson
- ‘cass’: Cassini
- ‘merc’: Mercator
- ‘poly’: Polyconic
- ‘lcc’: Lambert Conformal
- ‘stere’: Stereographic
- resolution : str
- The resolution for the coastlines. Can be ‘c’ for crude, ‘l’ for low, ‘i’ for intermediate, ‘h’ for high
Returns:
- basemap : mpl_toolkits.basemap.Basemap
- The basemap
-
geoist.vis.giplt.
contour
(x, y, v, shape, levels, interp=False, extrapolate=False, color='k', label=None, clabel=True, style='solid', linewidth=1.0, basemap=None)¶ Make a contour plot of the data.
Parameters:
- x, y : array
- Arrays with the x and y coordinates of the grid points. If the data is on a regular grid, then assume x varies first (ie, inner loop), then y.
- v : array
- The scalar value assigned to the grid points.
- shape : tuple = (ny, nx)
- Shape of the regular grid. If interpolation is not False, then will use shape to grid the data.
- levels : int or list
- Number of contours to use or a list with the contour values.
- interp : True or False
- Wether or not to interpolate before trying to plot. If data is not on regular grid, set to True!
- extrapolate : True or False
- Wether or not to extrapolate the data when interp=True
- color : str
- Color of the contour lines.
- label : str
- String with the label of the contour that would show in a legend.
- clabel : True or False
- Wether or not to print the numerical value of the contour lines
- style : str
- The style of the contour lines. Can be
'dashed'
,'solid'
or'mixed'
(solid lines for positive contours and dashed for negative)
- linewidth : float
- Width of the contour lines
- basemap : mpl_toolkits.basemap.Basemap
- If not None, will use this basemap for plotting with a map projection
(see
basemap()
for creating basemaps)
Returns:
- levels : list
- List with the values of the contour levels
-
geoist.vis.giplt.
contourf
(x, y, v, shape, levels, interp=False, extrapolate=False, vmin=None, vmax=None, cmap=<matplotlib.colors.LinearSegmentedColormap object>, basemap=None)¶ Make a filled contour plot of the data.
Parameters:
- x, y : array
- Arrays with the x and y coordinates of the grid points. If the data is on a regular grid, then assume x varies first (ie, inner loop), then y.
- v : array
- The scalar value assigned to the grid points.
- shape : tuple = (ny, nx)
- Shape of the regular grid. If interpolation is not False, then will use shape to grid the data.
- levels : int or list
- Number of contours to use or a list with the contour values.
- interp : True or False
- Wether or not to interpolate before trying to plot. If data is not on regular grid, set to True!
- extrapolate : True or False
- Wether or not to extrapolate the data when interp=True
- vmin, vmax
- Saturation values of the colorbar. If provided, will overwrite what is set by levels.
- cmap : colormap
- Color map to be used. (see pyplot.cm module)
- basemap : mpl_toolkits.basemap.Basemap
- If not None, will use this basemap for plotting with a map projection
(see
basemap()
for creating basemaps)
Returns:
- levels : list
- List with the values of the contour levels
-
geoist.vis.giplt.
draw_coastlines
(basemap, linewidth=1, style='solid')¶ Draw the coastlines using the given basemap.
Parameters:
- basemap : mpl_toolkits.basemap.Basemap
- The basemap used for plotting (see
basemap()
)
- linewidth : float
- The width of the lines
- style : str
- The style of the lines. Can be: ‘solid’, ‘dashed’, ‘dashdot’ or ‘dotted’
-
geoist.vis.giplt.
draw_countries
(basemap, linewidth=1, style='dashed')¶ Draw the country borders using the given basemap.
Parameters:
- basemap : mpl_toolkits.basemap.Basemap
- The basemap used for plotting (see
basemap()
)
- linewidth : float
- The width of the lines
- style : str
- The style of the lines. Can be: ‘solid’, ‘dashed’, ‘dashdot’ or ‘dotted’
-
geoist.vis.giplt.
draw_geolines
(area, dlon, dlat, basemap, linewidth=1)¶ Draw the parallels and meridians on a basemap plot.
Parameters:
- area : list
[west, east, south, north]
, i.e., the area where the lines will be plotted
- dlon, dlat : float
- The spacing between the lines in the longitude and latitude directions, respectively (in decimal degrees)
- basemap : mpl_toolkits.basemap.Basemap
- The basemap used for plotting (see
basemap()
)
- linewidth : float
- The width of the lines
-
geoist.vis.giplt.
draw_layers
(area, axes, style='-', marker='o', color='k', width=2)¶ Draw series of horizontal layers by clicking with the mouse.
The y-axis is assumed to be depth, the x-axis is the physical property of each layer.
INSTRUCTIONS:
- Click to make a new layer;
- Press ‘e’ to erase the last layer;
- Close the figure window to finish;
Parameters:
- area : list = [x1, x2, y1, y2]
Borders of the area containing the polygon
- axes : matplotlib Axes
The figure to use for drawing the polygon. To get an Axes instace, just do:
from matplotlib import pyplot axes = pyplot.figure().add_subplot(1,1,1)
You can plot things to
axes
before calling this function so that they’ll appear on the background.
- style : str
Line style (as in matplotlib.pyplot.plot)
- marker : str
Style of the point markers (as in matplotlib.pyplot.plot)
- color : str
Line color (as in matplotlib.pyplot.plot)
- width : float
The line width (as in matplotlib.pyplot.plot)
Returns:
layers : list = [thickness, values]
- thickness : list
- The thickness of each layer, in order of increasing depth
- values : list
- The physical property value of each layer, in the same order
-
geoist.vis.giplt.
draw_polygon
(area, axes, style='-', marker='o', color='k', width=2, alpha=0.5, xy2ne=False)¶ Draw a polygon by clicking with the mouse.
INSTRUCTIONS:
- Left click to pick the edges of the polygon;
- Draw edges CLOCKWISE;
- Press ‘e’ to erase the last edge;
- Right click to close the polygon;
- Close the figure window to finish;
Parameters:
- area : list = [x1, x2, y1, y2]
Borders of the area containing the polygon
- axes : matplotlib Axes
The figure to use for drawing the polygon. To get an Axes instace, just do:
from matplotlib import pyplot axes = pyplot.figure().add_subplot(1,1,1)
You can plot things to
axes
before calling this function so that they’ll appear on the background.
- style : str
Line style (as in matplotlib.pyplot.plot)
- marker : str
Style of the point markers (as in matplotlib.pyplot.plot)
- color : str
Line color (as in matplotlib.pyplot.plot)
- width : float
The line width (as in matplotlib.pyplot.plot)
- alpha : float
Transparency of the fill of the polygon. 0 for transparent, 1 for opaque (fills the polygon once done drawing)
- xy2ne : True or False
If True, will exchange the x and y axis so that x points north. Use this when drawing on a map viewed from above. If the y-axis of the plot is supposed to be z (depth), then use
xy2ne=False
.
Returns:
- edges : list of lists
- List of
[x, y]
pairs with the edges of the polygon
-
geoist.vis.giplt.
layers
(thickness, values, style='-k', z0=0.0, linewidth=1, label=None, **kwargs)¶ Plot a series of layers and values associated to each layer.
Parameters:
- thickness : list
- The thickness of each layer in order of increasing depth
- values : list
- The value associated with each layer in order of increasing depth
- style : str
- String with the color and line style (as in matplotlib.pyplot.plot)
- z0 : float
- The depth of the top of the first layer
- linewidth : float
- Line width
- label : str
- label associated with the square.
Returns:
- axes :
matplitlib.axes
The axes element of the plot
- axes :
-
geoist.vis.giplt.
m2km
(axis=None)¶ Convert the x and y tick labels from meters to kilometers.
Parameters:
- axis : matplotlib axis instance
- The plot.
Tip
Use
geoist.vis.gca()
to get the current axis. Or the value returned bygeoist.vis.subplot
ormatplotlib.pyplot.subplot
.
-
geoist.vis.giplt.
paths
(pts1, pts2, style='-k', linewidth=1, label=None)¶ Plot paths between the two sets of points.
Parameters:
- pts1 : list of lists
- List of (x, y) pairs with the coordinates of the points
- pts2 : list of lists
- List of (x, y) pairs with the coordinates of the points
- style : str
- String with the color and line style (as in matplotlib.pyplot.plot)
- linewidth : float
- The width of the lines representing the paths
- label : str
- If not None, then the string that will show in the legend
-
geoist.vis.giplt.
pcolor
(x, y, v, shape, interp=False, extrapolate=False, cmap=<matplotlib.colors.LinearSegmentedColormap object>, vmin=None, vmax=None, basemap=None)¶ Make a pseudo-color plot of the data.
Parameters:
- x, y : array
- Arrays with the x and y coordinates of the grid points. If the data is on a regular grid, then assume x varies first (ie, inner loop), then y.
- v : array
- The scalar value assigned to the grid points.
- shape : tuple = (ny, nx)
- Shape of the regular grid. If interpolation is not False, then will use shape to grid the data.
- interp : True or False
- Wether or not to interpolate before trying to plot. If data is not on regular grid, set to True!
- extrapolate : True or False
- Wether or not to extrapolate the data when interp=True
- cmap : colormap
- Color map to be used. (see pyplot.cm module)
- vmin, vmax
- Saturation values of the colorbar.
- basemap : mpl_toolkits.basemap.Basemap
- If not None, will use this basemap for plotting with a map projection
(see
basemap()
for creating basemaps)
Returns:
- axes :
matplitlib.axes
The axes element of the plot
- axes :
-
geoist.vis.giplt.
pick_points
(area, axes, marker='o', color='k', size=8, xy2ne=False)¶ Get the coordinates of points by clicking with the mouse.
INSTRUCTIONS:
- Left click to pick the points;
- Press ‘e’ to erase the last point picked;
- Close the figure window to finish;
Parameters:
- area : list = [x1, x2, y1, y2]
Borders of the area containing the points
- axes : matplotlib Axes
The figure to use for drawing the polygon. To get an Axes instace, just do:
from matplotlib import pyplot axes = pyplot.figure().add_subplot(1,1,1)
You can plot things to
axes
before calling this function so that they’ll appear on the background.
- marker : str
Style of the point markers (as in matplotlib.pyplot.plot)
- color : str
Line color (as in matplotlib.pyplot.plot)
- size : float
Marker size (as in matplotlib.pyplot.plot)
- xy2ne : True or False
If True, will exchange the x and y axis so that x points north. Use this when drawing on a map viewed from above. If the y-axis of the plot is supposed to be z (depth), then use
xy2ne=False
.
Returns:
- points : list of lists
- List of
[x, y]
coordinates of the points
-
geoist.vis.giplt.
points
(pts, style='.k', size=10, label=None, xy2ne=False)¶ Plot a list of points.
Parameters:
- pts : list of lists
- List of [x, y] pairs with the coordinates of the points
- style : str
- String with the color and line style (as in matplotlib.pyplot.plot)
- size : int
- Size of the plotted points
- label : str
- If not None, then the string that will show in the legend
- xy2ne : True or False
- If True, will exchange the x and y axis so that the x coordinates of
the polygon are north. Use this when drawing on a map viewed from
above. If the y-axis of the plot is supposed to be z (depth), then use
xy2ne=False
.
Returns:
- axes :
matplitlib.axes
The axes element of the plot
- axes :
-
geoist.vis.giplt.
polygon
(polygon, style='-k', linewidth=1, fill=None, alpha=1.0, label=None, xy2ne=False, linealpha=1.0)¶ Plot a polygon.
Parameters:
- polygon :
geoist.inversion.geometry.Polygon
The polygon
- polygon :
- style : str
Color and line style string (as in matplotlib.pyplot.plot)
- linewidth : float
Line width
- fill : str
A color string used to fill the polygon. If None, the polygon is not filled
- alpha : float
Transparency of the fill (1 >= alpha >= 0). 0 is transparent and 1 is opaque
- linealpha : float
Transparency of the line (1 >= alpha >= 0). 0 is transparent and 1 is opaque
- label : str
String with the label identifying the polygon in the legend
- xy2ne : True or False
If True, will exchange the x and y axis so that the x coordinates of the polygon are north. Use this when drawing on a map viewed from above. If the y-axis of the plot is supposed to be z (depth), then use
xy2ne=False
.
Returns:
- lines : matplotlib Line object
- Line corresponding to the polygon plotted
-
geoist.vis.giplt.
seismic_image
(section, dt, ranges=None, cmap=<matplotlib.colors.LinearSegmentedColormap object>, aspect=None, vmin=None, vmax=None)¶ Plot a seismic section (numpy 2D array matrix) as an image.
Parameters:
- section : 2D array
- matrix of traces (first dimension time, second dimension traces)
- dt : float
- sample rate in seconds
- ranges : (x1, x2)
- min and max horizontal coordinate values (default trace number)
- cmap : colormap
- color map to be used. (see pyplot.cm module)
- aspect : float
- matplotlib imshow aspect parameter, ratio between axes
- vmin, vmax : float
- min and max values for imshow
-
geoist.vis.giplt.
seismic_wiggle
(section, dt, ranges=None, scale=1.0, color='k', normalize=False)¶ Plot a seismic section (numpy 2D array matrix) as wiggles.
Parameters:
- section : 2D array
- matrix of traces (first dimension time, second dimension traces)
- dt : float
- sample rate in seconds
- ranges : (x1, x2)
- min and max horizontal values (default trace number)
- scale : float
- scale factor multiplied by the section values before plotting
- color : tuple of strings
- Color for filling the wiggle, positive and negative lobes.
- normalize :
- True to normalizes all trace in the section using global max/min data will be in the range (-0.5, 0.5) zero centered
Warning
Slow for more than 200 traces, in this case decimate your data or use
seismic_image
.
-
geoist.vis.giplt.
set_area
(area)¶ Set the area of a Matplolib plot using xlim and ylim.
Parameters:
- area : list = [x1, x2, y1, y2]
- Coordinates of the top right and bottom left corners of the area
-
geoist.vis.giplt.
square
(area, style='-k', linewidth=1, fill=None, alpha=1.0, label=None, xy2ne=False)¶ Plot a square.
Parameters:
- area : list = [x1, x2, y1, y2]
- Borders of the square
- style : str
- String with the color and line style (as in matplotlib.pyplot.plot)
- linewidth : float
- Line width
- fill : str
- A color string used to fill the square. If None, the square is not filled
- alpha : float
- Transparency of the fill (1 >= alpha >= 0). 0 is transparent and 1 is opaque
- label : str
- label associated with the square.
- xy2ne : True or False
- If True, will exchange the x and y axis so that the x coordinates of
the polygon are north. Use this when drawing on a map viewed from
above. If the y-axis of the plot is supposed to be z (depth), then use
xy2ne=False
.
Returns:
- axes :
matplitlib.axes
The axes element of the plot
- axes :
-
geoist.vis.giplt.
squaremesh
(mesh, prop, cmap=<matplotlib.colors.LinearSegmentedColormap object>, vmin=None, vmax=None)¶ Make a pseudo-color plot of a mesh of squares
Parameters:
- mesh :
geoist.mesher.SquareMesh
or compatible The mesh (a compatible mesh must implement the methods
get_xs
andget_ys
)
- mesh :
- prop : str
The physical property of the squares to use as the color scale.
- cmap : colormap
Color map to be used. (see pyplot.cm module)
- vmin, vmax : float
Saturation values of the colorbar.
Returns:
- axes :
matplitlib.axes
The axes element of the plot
- axes :
Module contents¶
Plotting utilities.
Wrappers to facilitate common plotting tasks using powerful third-party libraries.
giplt
: 2D plotting using matplotlib