The silx.gui.plot package provides plot widgets. This package is structured as follows.
PlotWidget and PlotWindow provides the user API. PlotWidget is a Qt widget (actually a QMainWindow) displaying a 1D, 2D plot area. It provides different interaction modes. PlotWindow is a Qt widget (actually a QMainWindow) which adds a set of toolbar buttons and associated functionalities to PlotWidget. The toolbar QActions are implemented in PlotActions.
Plot, PlotEvents and PlotInteraction implement the plotting API regardless of the rendering backend and regardless of its integration in Qt. The plotting API in defined in Plot. The different interaction modes (zoom, drawing, pan) are implemented in PlotInteraction. Each interaction mode is implemented with a state machine structure (implemented in Interaction). The different events emitted by Plot and by the interaction modes are created with helper functions defined in PlotEvents.
The PlotWindow uses additional widgets:
The widgets also use the following miscellaneous modules:
The backends package provide the implementation of the rendering used by the Plot. It contains: backends.BackendBase defines the API any plot backend should provide in BackendBase. backends.BackendMatplotlib implements a matplotlib backend. It uses backends.ModestImage to provide a faster matplotlib AxesImage class using nearest values. The backends.BackendMatplotlib the provides two classes:
The OpenGL-based backend is implemented in the backends.BackendOpenGL module and the backends.glutils package which provides the different primitives used for rendering and interaction. It is based on silx.gui._glutils, PyOpenGL and OpenGL >= 2.1.
For PlotWidget and Plot modules, see their respective documentations: PlotWidget, Plot.
The following modules are the modules used internally by the plot package.
Base class for Plot backends.
It documents the Plot backend API.
This API is a simplified version of PyMca PlotBackend API.
Class defining the API a backend of the Plot should provide.
Add a 1D curve given by x an y to the graph.
Parameters: |
|
---|---|
Returns: | The handle used by the backend to univocally access the curve |
Add an image to the plot.
Parameters: |
|
---|---|
Returns: | The handle used by the backend to univocally access the image |
Add an item (i.e. a shape) to the plot.
Parameters: |
|
---|---|
Returns: | The handle used by the backend to univocally access the item |
Add a point, vertical line or horizontal line marker to the plot.
Parameters: |
|
---|---|
Returns: | Handle used by the backend to univocally access the marker |
Remove an existing item from the plot.
Parameters: | item – A backend specific item handle returned by a add* method |
---|
Set the cursor shape.
To override in interactive backends.
Parameters: | cursor (str) – Name of the cursor shape or None |
---|
Toggle the display of a crosshair cursor and set its attributes.
To override in interactive backends.
Parameters: |
|
---|
Get a list of items at a pixel position.
Parameters: |
|
---|---|
Returns: | All picked items from back to front. One dict per item, with ‘kind’ key in ‘curve’, ‘marker’, ‘image’; ‘legend’ key, the item legend. and for curves, ‘xdata’ and ‘ydata’ keys storing picked position on the curve. |
Return type: | list of dict |
Set the color of a curve.
Parameters: |
|
---|
Trigger a Plot.replot().
Default implementation triggers a synchronous replot if plot is dirty. This method should be overridden by the embedding widget in order to provide an asynchronous call to replot in order to optimize the number replot operations.
Save the graph to a file (or a StringIO)
Parameters: |
|
---|
Set the main title of the plot.
Parameters: | title (str) – Title associated to the plot |
---|
Set the X axis label.
Parameters: | label (str) – label associated to the plot bottom X axis |
---|
Set the left Y axis label.
Parameters: |
|
---|
Set the limits of the X and Y axes at once.
Parameters: |
|
---|
Get the graph X (bottom) limits.
Returns: | Minimum and maximum values of the X axis |
---|
Set the limits of X axis.
Parameters: |
|
---|
Get the graph Y (left) limits.
Parameters: | axis (str) – The axis for which to get the limits: left or right |
---|---|
Returns: | Minimum and maximum values of the Y axis |
Set the limits of the Y axis.
Parameters: |
|
---|
Set the X axis scale between linear and log.
Parameters: | flag (bool) – If True, the bottom axis will use a log scale |
---|
Set the Y axis scale between linear and log.
Parameters: | flag (bool) – If True, the left axis will use a log scale |
---|
Invert the Y axis.
Parameters: | flag (bool) – If True, put the vertical axis origin on the top |
---|
Set whether to keep data aspect ratio or not.
Parameters: | flag (Boolean, default True) – True to respect data aspect ratio |
---|
Set grid.
Parameters: | which – None to disable grid, ‘major’ for major grid, ‘both’ for major and minor grid |
---|
Convert a position in data space to a position in pixels in the widget.
Parameters: |
|
---|---|
Returns: | The corresponding position in pixels or None if the data position is not in the displayed area. |
Return type: | A tuple of 2 floats: (xPixel, yPixel) or None. |
Convert a position in pixels in the widget to a position in the data space.
Parameters: |
|
---|---|
Returns: | The corresponding position in data space or None if the pixel position is not in the plot area. |
Return type: | A tuple of 2 floats: (xData, yData) or None. |
Matplotlib Plot backend.
Base class for Matplotlib backend without a FigureCanvas.
For interactive on screen plot, see BackendMatplotlibQt.
See BackendBase.BackendBase for public API documentation.
Matplotlib computationally modest image class.
Computationally modest image class.
Customization of https://github.com/ChrisBeaumont/ModestImage to allow extent support.
ModestImage is an extension of the Matplotlib AxesImage class better suited for the interactive display of larger images. Before drawing, ModestImage resamples the data array based on the screen resolution and view window. This has very little affect on the appearance of the image, but can substantially cut down on computation since calculations of unresolved or clipped pixels are skipped.
The interface of ModestImage is the same as AxesImage. However, it does not currently support setting the ‘extent’ property. There may also be weird coordinate warping operations for images that I’m not aware of. Don’t expect those to work either.
A QDialog widget to set-up the colormap.
It uses a description of colormaps as dict compatible with Plot.
To run the following sample code, a QApplication must be initialized.
Create the colormap dialog and set the colormap description and data range:
>>> from silx.gui.plot.ColormapDialog import ColormapDialog
>>> dialog = ColormapDialog()
>>> dialog.setColormap(name='red', normalization='log',
... autoscale=False, vmin=1., vmax=2.)
>>> dialog.setDataRange(1., 100.) # This scale the width of the plot area
>>> dialog.show()
Get the colormap description (compatible with Plot) from the dialog:
>>> cmap = dialog.getColormap()
>>> cmap['name']
'red'
It is also possible to display an histogram of the image in the dialog. This updates the data range with the range of the bins.
>>> import numpy
>>> image = numpy.random.normal(size=512 * 512).reshape(512, -1)
>>> hist, bin_edges = numpy.histogram(image, bins=10)
>>> dialog.setHistogram(hist, bin_edges)
The updates of the colormap description are also available through the signal: ColormapDialog.sigColormapChanged.
A QDialog widget to set the colormap.
Parameters: |
|
---|
Signal triggered when the colormap is changed.
It provides a dict describing the colormap to the slot. This dict can be used with Plot.
Returns the counts and bin edges of the displayed histogram.
Returns: | (hist, bin_edges) |
---|---|
Return type: | 2-tuple of numpy arrays |
Set the histogram to display.
This update the data range with the bounds of the bins. See setDataRange().
Parameters: |
|
---|
Returns the data range used for the histogram area.
Returns: | (dataMin, dataMax) or None if no data range is set |
---|---|
Return type: | 2-tuple of float |
Set the range of data to use for the range of the histogram area.
Parameters: |
|
---|
Return the colormap description as a dict.
See Plot for documentation on the colormap dict.
Set the colormap description
If some arguments are not provided, the current values are used.
Parameters: |
|
---|
Color conversion function, color dictionary and colormap tools.
Convert color code ‘#RRGGBB’ and ‘#RRGGBBAA’ to (R, G, B, A)
It also convert RGB(A) values from uint8 to float in [0, 1] and accept a QColor as color argument.
Parameters: |
|
---|---|
Returns: | RGBA colors as floats in [0., 1.] |
Return type: | tuple |
Widget to handle regions of interest (ROI) on curves displayed in a PlotWindow.
This widget is meant to work with PlotWindow.
ROI are defined by :
A name (ROI column)
A type. The type is the label of the x axis. This can be used to apply or not some ROI to a curve and do some post processing.
The x coordinate of the left limit (from column)
The x coordinate of the right limit (to column)
Raw counts: integral of the curve between the min ROI point and the max ROI point to the y = 0 line
Net counts: the integral of the curve between the min ROI point and the max ROI point to [ROI min point, ROI max point] segment
Widget displaying a table of ROI information.
Parameters: |
|
---|
Signal of ROIs modifications.
Modification information if given as a dict with an ‘event’ key providing the type of events.
Type of events:
Set the ROIs by providing a dictionary of ROI information.
The dictionary keys are the ROI names. Each value is a sub-dictionary of ROI info with the following fields:
- "from": x coordinate of the left limit, as a float
- "to": x coordinate of the right limit, as a float
- "type": type of ROI, as a string (e.g “channels”, “energy”)
Parameters: |
|
---|
Return the currently defined ROIs, as an ordered dict.
The dictionary keys are the ROI names. Each value is a sub-dictionary of ROI info with the following fields:
- "from": x coordinate of the left limit, as a float
- "to": x coordinate of the right limit, as a float
- "type": type of ROI, as a string (e.g “channels”, “energy”)
Parameters: | order – Field used for ordering the ROIs. One of “from”, “to”, “type”, “netcounts”, “rawcounts”. None (default) to get the same order as displayed in the widget. |
---|---|
Returns: | Ordered dictionary of ROI information |
Load ROI widget information from a file storing a dict of ROI.
Parameters: | filename (str) – The file from which to load ROI |
---|
Table widget displaying ROI information.
See QTableWidget for constructor arguments.
Signal of ROI table modifications.
Set the ROIs by providing a list of ROI names and a dictionary of ROI information for each ROI.
The ROI names must match an existing dictionary key. The name list is used to provide an order for the ROIs.
The dictionary’s values are sub-dictionaries containing 3 mandatory fields:
- "from": x coordinate of the left limit, as a float
- "to": x coordinate of the right limit, as a float
- "type": type of ROI, as a string (e.g “channels”, “energy”)
Parameters: |
|
---|
Return the currently defined ROIs, as a 2-tuple (roiList, roiDict)
roiList is a list of ROI names. roiDict is a dictionary of ROI info.
The ROI names must match an existing dictionary key. The name list is used to provide an order for the ROIs.
The dictionary’s values are sub-dictionaries containing 3 fields:
- "from": x coordinate of the left limit, as a float
- "to": x coordinate of the right limit, as a float
- "type": type of ROI, as a string (e.g “channels”, “energy”)
Returns: | ordered dict as a tuple of (list of ROI names, dict of info) |
---|
QDockWidget with a CurvesROIWidget connected to a PlotWindow.
It makes the link between the CurvesROIWidget and the PlotWindow.
Parameters: |
|
---|
Main widget of type CurvesROIWidget
This module provides an implementation of state machines for interaction.
Sample code of a state machine with two states (‘idle’ and ‘active’) with transitions on left button press/release:
from silx.gui.plot.Interaction import *
class SampleStateMachine(StateMachine):
class Idle(State):
def onPress(self, x, y, btn):
if btn == LEFT_BTN:
self.goto('active')
class Active(State):
def enterState(self):
print('Enabled') # Handle enter active state here
def leaveState(self):
print('Disabled') # Handle leave active state here
def onRelease(self, x, y, btn):
if btn == LEFT_BTN:
self.goto('idle')
def __init__(self):
# State machine has 2 states
states = {
'idle': SampleStateMachine.Idle,
'active': SampleStateMachine.Active
}
super(TwoStates, self).__init__(states, 'idle')
# idle is the initial state
stateMachine = SampleStateMachine()
# Triggers a transition to the Active state:
stateMachine.handleEvent('press', 0, 0, LEFT_BTN)
# Triggers a transition to the Idle state:
stateMachine.handleEvent('release', 0, 0, LEFT_BTN)
See ClickOrDrag for another example of a state machine.
See Renaud Blanch, Michel Beaudouin-Lafon. Programming Rich Interactions using the Hierarchical State Machine Toolkit. In Proceedings of AVI 2006. p 51-58. for a discussion of using (hierarchical) state machines for interaction.
Base class for the states of a state machine.
This class is meant to be subclassed.
The state machine this state belongs to.
Useful to access data or methods that are shared across states.
Performs a transition to a new state.
Extra arguments are passed to the enterState() method of the new state.
Parameters: | state (str) – The name of the state to go to. |
---|
State machine controller.
This is the entry point of a state machine. It is in charge of dispatching received event and handling the current active state.
Process an event with the state machine.
This method looks up for an event handler in the current state and then in the StateMachine instance. Handler are looked up as ‘onEventName’ method. If a handler is found, it is called with the provided extra arguments, and this method returns the return value of the handler. If no handler is found, this method returns None.
Parameters: | eventName (str) – Name of the event to handle |
---|---|
Returns: | The return value of the handler or None |
Left mouse button.
Right mouse button.
Middle mouse button.
State machine for left and right click and left drag interaction.
It is intended to be used through subclassing by overriding click(), beginDrag(), drag() and endDrag().
Widget displaying curves legends and allowing to operate on curves.
This widget is meant to work with PlotWindow.
List of values resulting in no symbol being displayed for a curve
Conversion from matplotlib-like linestyle to Qt
List of style values resulting in no line being displayed for a curve
Object displaying a curve linestyle and symbol.
Data model of curve legends.
It holds the information of the curve:
Object displaying a single item (i.e., a row) in the list.
Widget displaying a list of curve legends, line style and symbol.
Signal emitting a dict when an action is triggered by the user.
Contextual menu associated to items in a LegendListView.
Signal emitting a dict upon contextual menu actions.
Dialog box to input the name of a curve.
QDockWidget with a LegendSelector connected to a PlotWindow.
It makes the link between the LegendListView widget and the PlotWindow.
Parameters: |
|
---|
The PlotWindow this widget is attached to.
This module is a collection of base classes used in modules MaskToolsWidget (images) and ScatterMaskToolsWidget
Base class for ImageMask and ScatterMask
A mask field with update operations.
A mask is an array of the same shape as some underlying data. The mask array stores integer values in the range 0-255, to allow for 254 levels of mask (value 0 is reserved for unmasked data).
The mask is updated using spatial selection methods: data located inside a selected area is masked with a specified mask level.
Signal emitted when the mask has changed
Signal emitted when undo becomes possible/impossible
Signal emitted when redo becomes possible/impossible
Maximum number of operation stored in history list for undo
Set a data item
Parameters: | item – A plot item, subclass of silx.gui.plot.items.Item |
---|---|
Returns: |
Return data values, as a numpy array with the same shape as the mask.
This method must be implemented in a subclass, as the way of accessing data depends on the data item passed to setDataItem()
Returns: | Data values associated with the data item. |
---|---|
Return type: | numpy.ndarray |
Get the current mask as a numpy array.
Parameters: | copy (bool) – True (default) to get a copy of the mask. If False, the returned array MUST not be modified. |
---|---|
Returns: | The array of the mask with dimension of the data to be masked. |
Return type: | numpy.ndarray of uint8 |
Set the mask to a new array.
Parameters: |
|
---|
Set all values of the given mask level to 0.
Parameters: | level (int) – Value of the mask to set to 0. |
---|
Invert mask of the given mask level.
0 values become level and level values become 0.
Parameters: | level (int) – The level to invert. |
---|
Reset the mask to zero and change its shape.
Parameters: | shape (tuple of int) – Shape of the new mask with the correct dimensionality with regards to the data dimensionality, or None to have an empty mask |
---|
Save current mask in a file
Parameters: |
|
---|---|
Raises Exception: | |
Raised if the file writing fail |
Mask/Unmask points from boolean mask: all elements that are True in the boolean mask are set to level (if mask=True) or 0 (if mask=False)
Parameters: |
|
---|
Mask/unmask all points whose values are below a threshold.
Parameters: |
|
---|
Mask/unmask all points whose values are in a range.
Parameters: |
|
---|
Mask/unmask all points whose values are above a threshold.
Parameters: |
|
---|
Mask/unmask all points whose values are not finite.
Parameters: |
|
---|
Mask/Unmask data inside a rectangle, with the given mask level.
Parameters: |
|
---|
Mask/Unmask data inside a polygon, with the given mask level.
Parameters: |
|
---|
Mask/Unmask points with given coordinates.
Parameters: |
|
---|
Mask/Unmask data located inside a disk of the given mask level.
Parameters: |
|
---|
Mask/Unmask a line of the given mask level.
Parameters: |
|
---|
Base class for MaskToolsWidget (image mask) and scatterMaskToolsWidget
Get the current mask as a numpy array.
Parameters: | copy (bool) – True (default) to get a copy of the mask. If False, the returned array MUST not be modified. |
---|---|
Returns: | The array of the mask with dimension of the ‘active’ plot item. If there is no active image or scatter, an empty array is returned. |
Return type: | numpy.ndarray of uint8 |
Set the mode of multiple masks support.
Available modes:
Parameters: | mode (str) – The mode to use |
---|
The PlotWindow this widget is attached to.
Set the direction of the layout of the widget
Parameters: | direction – QBoxLayout direction |
---|
Save current mask in a file
Parameters: |
|
---|---|
Raises Exception: | |
Raised if the process fails |
Returns the color of the current selected level.
Return type: | A tuple or a python array |
---|
Reset the mask color at the given level to be defaultColors
Parameters: | level – The index of the mask for which we want to reset the color. If none we will reset color for all masks. |
---|
Base class for MaskToolsWidget and ScatterMaskToolsWidget
For integration in a PlotWindow.
Parameters: | parent – See QDockWidget |
---|---|
Paran str name: | The title of this widget |
Get the current mask as a 2D array.
Parameters: | copy (bool) – True (default) to get a copy of the mask. If False, the returned array MUST not be modified. |
---|---|
Returns: | The array of the mask with dimension of the ‘active’ image. If there is no active image, an empty array is returned. |
Return type: | 2D numpy.ndarray of uint8 |
Set the mask to a new array.
Parameters: |
|
---|---|
Returns: | None if failed, shape of mask as 2-tuple if successful. The mask can be cropped or padded to fit active image, the returned shape is that of the active image. |
Widget providing a set of tools to draw masks on a PlotWidget.
This widget is meant to work with silx.gui.plot.PlotWidget.
Bases: silx.gui.plot._BaseMaskToolsWidget.BaseMask
A 2D mask field with update operations.
Coords follows (row, column) convention and are in mask array coords.
This is meant for internal use by MaskToolsWidget.
Return image data as a 2D or 3D array (if it is a RGBA image).
Return type: | 2D or 3D numpy.ndarray |
---|
Save current mask in a file
Parameters: |
|
---|---|
Raises Exception: | |
Raised if the file writing fail |
Mask/Unmask a rectangle of the given mask level.
Parameters: |
|
---|
Mask/Unmask a polygon of the given mask level.
Parameters: |
|
---|
Mask/Unmask points with given coordinates.
Parameters: |
|
---|
Mask/Unmask a disk of the given mask level.
Parameters: |
|
---|
Mask/Unmask a line of the given mask level.
Parameters: |
|
---|
Bases: silx.gui.plot._BaseMaskToolsWidget.BaseMaskToolsWidget
Widget with tools for drawing mask on an image in a PlotWidget.
Set the mask to a new array.
Parameters: |
|
---|---|
Returns: | None if failed, shape of mask as 2-tuple if successful. The mask can be cropped or padded to fit active image, the returned shape is that of the active image. |
Bases: silx.gui.plot._BaseMaskToolsWidget.BaseMaskToolsDockWidget
MaskToolsWidget embedded in a QDockWidget.
For integration in a PlotWindow.
Parameters: |
|
---|---|
Paran str name: | The title of this widget |
Widget providing a set of tools to draw masks on a PlotWidget.
This widget is meant to work with a modified silx.gui.plot.PlotWidget
Bases: silx.gui.plot._BaseMaskToolsWidget.BaseMask
A 1D mask for scatter data.
Mask/Unmask points with given indices.
Parameters: |
|
---|
Mask/Unmask a polygon of the given mask level.
Parameters: |
|
---|
Mask/Unmask data inside a rectangle
Parameters: |
|
---|
Mask/Unmask a disk of the given mask level.
Parameters: |
|
---|
Mask/Unmask points inside a rectangle defined by a line (two end points) and a width.
Parameters: |
|
---|
Bases: silx.gui.plot._BaseMaskToolsWidget.BaseMaskToolsWidget
Widget with tools for masking data points on a scatter in a PlotWidget.
Set the mask to a new array.
Parameters: |
|
---|---|
Returns: | None if failed, shape of mask as 1-tuple if successful. The mask can be cropped or padded to fit active scatter, the returned shape is that of the scatter data. |
Bases: silx.gui.plot._BaseMaskToolsWidget.BaseMaskToolsDockWidget
ScatterMaskToolsWidget embedded in a QDockWidget.
For integration in a PlotWindow.
Parameters: |
|
---|---|
Paran str name: | The title of this widget |
Matplotlib’s new colormaps
Functions to prepare events to be sent to Plot callback.
See Plot documentation for content of events
See Plot documentation for content of events
See Plot documentation for content of events
See Plot documentation for content of events
See Plot documentation for content of events
Implementation of the interaction for the Plot.
Pan plot content and zoom on wheel state machine.
Zoom-in/out state machine.
Zoom-in on selected area, zoom-out on right click, and zoom on mouse wheel.
Base class for drawing selection areas.
Drawing selection polygon area state machine.
Base class for drawing selection based on 2 input points.
Drawing rectangle selection area state machine.
Drawing line selection area state machine.
Base class for drawing selection area based on one input point.
Drawing a horizontal line selection area state machine.
Drawing a vertical line selection area state machine.
Interaction for drawing pencil. It display the preview of the pencil before pressing the mouse.
Base class for drawing free lines with tools such as pencil.
Interaction with items (markers, curves and images).
This class provides selection and dragging of plot primitives that support those interaction. It is also meant to be combined with the zoom interaction.
Manages focus across multiple event handlers
On press an event handler can acquire focus. By default it looses focus when all buttons are released.
Combine Zoom and ItemInteraction state machine.
Parameters: |
|
---|
Handle mouse click
Parameters: |
|
---|---|
Returns: | True if click is catched by an item, False otherwise |
Handle start drag and switching between zoom and item drag.
Parameters: |
|
---|
Proxy to currently use state machine for interaction.
This allows to switch interactive mode.
Parameters: | plot – The Plot to apply interaction to |
---|
True to enable zoom on wheel, False otherwise.
Returns the current interactive mode as a dict.
The returned dict contains at least the key ‘mode’. Mode can be: ‘draw’, ‘pan’, ‘select’, ‘zoom’. It can also contains extra keys (e.g., ‘color’) specific to a mode as provided to setInteractiveMode().
Switch the interactive mode.
Parameters: |
|
---|
Miscellaneous utility functions for the Plot
Clip colormap vmin and vmax to 1, 10 if normalization is ‘log’ and vmin or vmax <1
Parameters: | colormap (dict) – the colormap for which we want to clip vmin and vmax |
---|
Returns updated limits by extending them with margins.
Parameters: | margins (A 4-tuple of floats as (xMinMargin, xMaxMargin, yMinMargin, yMaxMargin)) – The ratio of the margins to add or None for no margins. |
---|---|
Returns: | The updated limits |
Return type: | tuple of 4 or 6 floats: Either (xMin, xMax, yMin, yMax) or (xMin, xMax, yMin, yMax, y2Min, y2Max) if y2Min and y2Max are provided. |
This module implements labels layout on graph axes.
Returns the number of digits to display for text label.
Parameters: | tickSpacing (float) – Step between ticks in data space. |
---|---|
Returns: | Number of digits to show for labels. |
Return type: | int |
Returns tick positions.
This function implements graph labels layout using nice numbers by Paul Heckbert from “Graphics Gems”, Academic Press, 1990. See C code.
Parameters: |
|
---|---|
Returns: | min, max, increment value of tick positions and number of fractional digit to show |
Return type: | tuple |
Returns tick positions and labels using nice numbers algorithm.
This enforces ticks to be within [vMin, vMax] range. It returns at least 2 ticks.
Parameters: |
|
---|---|
Returns: | tick positions and corresponding text labels |
Return type: | 2-tuple: list of float, list of string |
Returns tick positions using niceNumbers() and a density of ticks.
axisLength and tickDensity are based on the same unit (e.g., pixel).
Parameters: |
|
---|---|
Returns: | min, max, increment value of tick positions and number of fractional digit to show |
Return type: | tuple |
Return tick positions for logarithmic scale
Parameters: |
|
---|---|
Returns: | log10 of min, max, increment value of tick positions and number of fractional digit to show |
Return type: | tuple of int |
Returns tick positions using niceNumbers() and a density of ticks.
axisLength and tickDensity are based on the same unit (e.g., pixel).
Parameters: |
|
---|---|
Returns: | log10 of min, max, increment value of tick positions and number of fractional digit to show |
Return type: | tuple |
Return the sub ticks for the log scale for all given ticks if subtick is in [lowBound, highBound]
Parameters: |
|
---|---|
Returns: | all the sub ticks contained in ticks (log10) |