ClawPlotAxes¶
For usage see Using setplot.py to specify the desired plots and Plotting examples.
Objects of this class are usually created by the new_plotaxes method of a ClawPlotFigure object.
- class ClawPlotAxes¶
Attributes¶
The following attributes can be set by the user:
- name : str
- axescmd : str
- The command to be used to create this axes, for example:
“subplot(1,1,1)” for a single axes filling the figure
“subplot(2,1,1)” for the top half
“axes([0.1, 0.1, 0.2, 0.8])” for a tall skinny axis.
See the matplotlib documentation for axes.
- show : bool
If False, suppress showing this axes and all items on it.
- title : str
The title to appear at the top of the axis. Defaults to string specified by the name attribute.
New in v5.9.1:
Note that the title can now include the string h:m:s or d:h:m:s as described further below for the case title_with_t == True.
- title_fontsize : float
Fontsize for title
- title_kwargs : str
Any other kwargs to be passed to plt.title(), e.g. ‘color’
- title_with_t : bool
If True, creates a title using a default format like:
`"%s at time t = %14.8e" % (title, t)`And rather than %14.8e for t, the default format uses %14.8f if 0.001 <= t <= 1000.
A different format can be specified with the title_t_format attribute.
New in v5.9.1:
If the title attribute contains the string d:h:m:s then the time is formatted as days:hours:minutes:seconds.
Otherwise, if the title attribute contains the string h:m:s then the time is formatted as hours:minutes:seconds.
For example, you could specify:
plotaxes.title_with_t = True plotaxes.title = 'Surface elevation at time h:m:s after earthquake'
- title_t_format : str
A format string used to format t in the title. If this is not None, then this is used instead of the conventions mentioned above.
Internally it formats using:
t_str = plotaxes.title_t_format % t title_str = "%s at time t = %s" % (plotaxes.title,t_str) plt.title(title_str, **plotaxes.title_kwargs)
- xlimits : array [xmin, xmax] or 'auto'
The x-axis limits if an array with two elements, or choose automatically
- ylimits : array [ymin, ymax] or 'auto'
The y-axis limits if an array with two elements, or choose automatically
- xticks_fontsize : float
Fontsize for xtick mark labels
- xticks_kwargs : dictionary
Other kwargs to be passed to xticks (e.g. locations)
- xlabel : str
Label for x-axis
- xlabel_fontsize : str
Fontsize for x-axis label
- xlabel_kwargs : dictionary
Other kwargs to be passed to xlabel (e.g. color)
- yticks_fontsize : float
Fontsize for ytick mark labels
- yticks_kwargs : dictionary
Other kwargs to be passed to yticks (e.g. locations)
- ylabel : str
Label for y-axis
- ylabel_fontsize : str
Fontsize for y-axis label
- ylabel_kwargs : dictionary
Other kwargs to be passed to ylabel (e.g. color)
- aspect : float
Aspect ratio for plot, used internally in the command:
plt.gca().set_aspect(plotaxes.aspect)
- aspect_latitude : float
For plots in longitude-latitude coordinates, the latitude to use for chosing the aspect ratio so that distances in meters are the same in x and y at this latitude. (For plots covering a broad range of latitudes, the the latitude near the middle or near the location of most interest is generally most appropriate.
This value is used internally in the command:
plt.gca().set_aspect(1./np.cos(plotaxes.aspect_latitude \ * np.pi/180))
- useOffset : boolean
If True, then tick marks may be labeled with an offset from some common value that is printed at the corner. Often it is nicer to see the full value at each tick mark, for which this should be set to False.
Internally the command:
plt.ticklabel_format(useOffset = plotaxes.useOffset)is issued if useOffset is not None.
- grid : boolean
If True then internally the command:
plt.grid(**plotaxes.grid_kwargs)is issued to add grid lines to the plot.
- grid_kwargs : dictionary
Any kwargs to be passed to plt.grid, e.g. ‘color’ or ‘linewidth’.
- kwargs : dictionary
Any other attributes to be passed to axes command.
- afteraxes : function or str
A string or function that is to be executed after creating all plot items on this axes. If a string, this string is executed using exec. If a function, it should be defined to have a single argument current_data.
The string version is useful for 1-liners such as:
afteraxes = "pylab.title('My custom title')"pylab commands can be used, since pylab has been imported into the plotting module.
The function form is better if you want to do several things, or if you need access to the data stored in current_data. For example:
def afteraxes(current_data): # add x- and y-axes to a 1d plot already created from pylab import plot xlower = current_data.xlower xupper = current_data.xupper plot([xlower, xupper], [0.,0.], 'k') # x-axis # Get y limits from variable just plotted, which is # available in current_data.var. ymin = current_data.var.min() ymax = current_data.var.max() plot([0.,0.], [ymin,ymax], 'k') # y-axis
Attributes for gauge plots¶
The following attributes are primarily useful for gauge plots, where the horizontal axis is time t rather than x, and are implemented in $CLAW/visclaw/src/python/visclaw/gaugetools.py:
- time_scale : float
Scaling for time values, e.g. if t is in seconds but you want the plot to show hours on the horizontal axis then set time_scale = 1/3600..
- time_label : str
Label for time axis (same as setting xlabel)
- time_label_fontsize : float
Fontsize for xlabel (time axis)
- time_label_kwargs : dictionary
Other kwargs to be passed to xlabel (e.g. color)
Methods¶
- new_plotitem(name=None, plot_type)¶
Returns an object of class ClawPlotItem associated with this axes. A single axes may have several items associated with it.
The name specified is used as a dictionary key. If None is provided, one is generated automatically of the form ITEM1, etc.
- gethandle()¶
Returns the handle for this axes.