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.
-
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