Reference¶
Base classes¶
- class plotpy.interfaces.IItemType[source]¶
Item types are used to categorized items in a broader way than objects obeying IBasePlotItem.
The necessity arises from the fact that Plotpy Items can inherit from different base classes and still provide functionalities akin to a given ItemType
the types() method of an item returns a list of interfaces this item supports
Curves¶
- class plotpy.items.CurveItem(curveparam: CurveParam | None = None)[source]¶
Curve item
- Parameters:
curveparam – Curve parameters
- boundingRect() QRectF [source]¶
Return the bounding rectangle of the data
- Returns:
Bounding rectangle of the data
- types() tuple[type[IItemType], ...] [source]¶
Returns a group or category for this item. This should be a tuple of class objects inheriting from IItemType
- Returns:
Tuple of class objects inheriting from IItemType
- Return type:
- set_selectable(state: bool) None [source]¶
Set item selectable state
- Parameters:
state – True if item is selectable, False otherwise
- set_resizable(state: bool) None [source]¶
Set item resizable state (or any action triggered when moving an handle, e.g. rotation)
- Parameters:
state – True if item is resizable, False otherwise
- set_movable(state: bool) None [source]¶
Set item movable state
- Parameters:
state – True if item is movable, False otherwise
- set_rotatable(state: bool) None [source]¶
Set item rotatable state
- Parameters:
state – True if item is rotatable, False otherwise
- can_select() bool [source]¶
Returns True if this item can be selected
- Returns:
True if item can be selected, False otherwise
- Return type:
- can_resize() bool [source]¶
Returns True if this item can be resized
- Returns:
True if item can be resized, False otherwise
- Return type:
- can_rotate() bool [source]¶
Returns True if this item can be rotated
- Returns:
True if item can be rotated, False otherwise
- Return type:
- can_move() bool [source]¶
Returns True if this item can be moved
- Returns:
True if item can be moved, False otherwise
- Return type:
- serialize(writer: guidata.io.HDF5Writer | guidata.io.INIWriter | guidata.io.JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: guidata.io.HDF5Reader | guidata.io.INIReader | guidata.io.JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- set_readonly(state: bool) None [source]¶
Set object readonly state
- Parameters:
state – True if object is readonly, False otherwise
- is_readonly() bool [source]¶
Return object readonly state
- Returns:
True if object is readonly, False otherwise
- Return type:
- set_private(state: bool) None [source]¶
Set object as private
- Parameters:
state – True if object is private, False otherwise
- is_private() bool [source]¶
Return True if object is private
- Returns:
True if object is private, False otherwise
- Return type:
- select() None [source]¶
Select the object and eventually change its appearance to highlight the fact that it’s selected
- unselect() None [source]¶
Unselect the object and eventually restore its original appearance to highlight the fact that it’s not selected anymore
- get_data() tuple[ndarray, ndarray] [source]¶
Return curve data x, y (NumPy arrays)
- Returns:
Tuple with two elements: x and y NumPy arrays
- Return type:
- dsamp(data: ndarray) ndarray [source]¶
Downsample data
- Parameters:
data – Data to downsample
- Returns:
Downsampled data
- set_data(x: ndarray, y: ndarray) None [source]¶
Set curve data
- Parameters:
x – X data
y – Y data
decimated_data – Set to True if CurveItem X and Y arrays are already set and this method is called to update decimated data (i.e. only update 1/N value with N set in CurveItem.param.decimation).
- is_empty() bool [source]¶
Return True if the item is empty
- Returns:
True if the item is empty, False otherwise
- hit_test(pos: QPointF) tuple[float, float, bool, None] [source]¶
Return a tuple (distance, attach point, inside, other_object)
- Parameters:
pos – Position
- Returns:
- Tuple with four elements: (distance, attach point, inside,
other_object).
- Return type:
Description of the returned values:
- distance: distance in pixels (canvas coordinates) to the closest
attach point
attach point: handle of the attach point
inside: True if the mouse button has been clicked inside the object
- other_object: if not None, reference of the object which will be
considered as hit instead of self
- get_closest_coordinates(x: float, y: float) tuple[float, float] [source]¶
Get the closest coordinates to the given point
- get_coordinates_label(x: float, y: float) str [source]¶
Get the coordinates label for the given coordinates
- Parameters:
x – X coordinate
y – Y coordinate
- Returns:
Coordinates label
- Return type:
- get_closest_x(xc: float) tuple[float, float] [source]¶
Get the closest point to the given x coordinate
- move_local_point_to(handle: int, pos: QPointF, ctrl: bool = None) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_local_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in canvas coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- move_with_selection(delta_x: float, delta_y: float) None [source]¶
Translate the item together with other selected items
- Parameters:
delta_x – Translation in plot coordinates along x-axis
delta_y – Translation in plot coordinates along y-axis
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
- class plotpy.items.ErrorBarCurveItem(curveparam: CurveParam | None = None, errorbarparam: ErrorBarParam | None = None)[source]¶
Error-bar curve item
- Parameters:
curveparam – Curve parameters
errorbarparam – Error-bar parameters
- serialize(writer: guidata.io.HDF5Writer | guidata.io.INIWriter | guidata.io.JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: guidata.io.HDF5Reader | guidata.io.INIReader | guidata.io.JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- unselect() None [source]¶
Unselect the object and eventually restore its original appearance to highlight the fact that it’s not selected anymore
- get_data() tuple[ndarray, ndarray, ndarray, ndarray] [source]¶
Get data
- Returns:
Data as a tuple (x, y, dx, dy)
- set_data(x: ndarray, y: ndarray, dx: ndarray | float | None = None, dy: ndarray | float | None = None) None [source]¶
Set data
- Parameters:
x – X data
y – Y data
dx – X error data
dy – Y error data
- get_minmax_arrays(all_values: bool = True) tuple[ndarray[float], ndarray[float], ndarray[float], ndarray[float]] [source]¶
Get min/max arrays
- Parameters:
all_values – If True, return all values, else return only finite values
- Returns:
Min/max arrays
- get_closest_coordinates(x: float, y: float) tuple[float, float] [source]¶
Get the closest coordinates to the given point
- boundingRect() QRectF [source]¶
Return the bounding rectangle of the data
- Returns:
Bounding rectangle of the data
- draw(painter: QPainter, xMap: QwtScaleMap, yMap: QwtScaleMap, canvasRect: QRectF) None [source]¶
Draw the item
- Parameters:
painter – Painter
xMap – X axis scale map
yMap – Y axis scale map
canvasRect – Canvas rectangle
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
Images¶
- class plotpy.items.BaseImageItem(data: ndarray | None = None, param: Any | None = None)[source]¶
Base class for image items
- Parameters:
data – Image data
param – Image parameters
- get_pixel_coordinates(xplot: float, yplot: float) tuple[float, float] [source]¶
Get pixel coordinates from plot coordinates
- Parameters:
xplot – X plot coordinate
yplot – Y plot coordinate
- Returns:
Pixel coordinates
- get_plot_coordinates(xpixel: float, ypixel: float) tuple[float, float] [source]¶
Get plot coordinates from pixel coordinates
- Parameters:
xpixel – X pixel coordinate
ypixel – Y pixel coordinate
- Returns:
Plot coordinates
- get_closest_indexes(x: float, y: float, corner: str | None = None) tuple[int, int] [source]¶
Get closest image pixel indexes to the given coordinates
- Parameters:
x – X coordinate
y – Y coordinate
corner – None (not a corner), ‘TL’ (top-left corner), ‘BR’ (bottom-right corner)
- Returns:
Closest image pixel indexes
- get_closest_index_rect(x0: float, y0: float, x1: float, y1: float) tuple[int, int, int, int] [source]¶
Get closest image rectangular pixel area index bounds
- Parameters:
x0 – X coordinate of first point
y0 – Y coordinate of first point
x1 – X coordinate of second point
y1 – Y coordinate of second point
- Returns:
Closest image rectangular pixel area index bounds
Note
Avoid returning empty rectangular area (return 1x1 pixel area instead). Handle reversed/not-reversed Y-axis orientation.
- align_rectangular_shape(shape: RectangleShape) None [source]¶
Align rectangular shape to image pixels
- Parameters:
shape – Shape to align
- get_closest_pixel_indexes(x: float, y: float) tuple[int, int] [source]¶
Get closest pixel indexes
- Parameters:
x – X coordinate
y – Y coordinate
- Returns:
Closest pixel indexes
Note
Instead of returning indexes of an image pixel like the method ‘get_closest_indexes’, this method returns the indexes of the closest pixel which is not necessarily on the image itself (i.e. indexes may be outside image index bounds: negative or superior than the image dimension)
Note
This is not the same as retrieving the canvas pixel coordinates (which depends on the zoom level)
- get_x_values(i0: int, i1: int) ndarray [source]¶
Get X values from pixel indexes
- Parameters:
i0 – First index
i1 – Second index
- Returns:
X values corresponding to the given pixel indexes
- get_y_values(j0: int, j1: int) ndarray [source]¶
Get Y values from pixel indexes
- Parameters:
j0 – First index
j1 – Second index
- Returns:
Y values corresponding to the given pixel indexes
- get_r_values(i0, i1, j0, j1, flag_circle=False)[source]¶
Get radial values from pixel indexes
- Parameters:
i0 – First index
i1 – Second index
j0 – Third index
j1 – Fourth index
flag_circle – Flag circle (Default value = False)
- Returns:
Radial values corresponding to the given pixel indexes
- set_data(data: ndarray, lut_range: tuple[float, float] | None = None) None [source]¶
Set image data
- Parameters:
data – 2D NumPy array
lut_range – LUT range – tuple (levelmin, levelmax) (Default value = None)
- get_data(x0: float, y0: float, x1: float | None = None, y1: float | None = None) float | tuple[ndarray, ndarray, ndarray] [source]¶
Get image data
- Parameters:
x0 – X coordinate of first point
y0 – Y coordinate of first point
x1 – X coordinate of second point (Default value = None)
y1 – Y coordinate of second point (Default value = None)
- Returns:
- Image level, or image levels in rectangular area (x0,y0,x1,y1)
as a tuple (x, y, data) of arrays
- get_closest_coordinates(x: float, y: float) tuple[float, float] [source]¶
Get the closest coordinates to the given point
- get_coordinates_label(x: float, y: float) str [source]¶
Get the coordinates label for the given coordinates
- Parameters:
x – X coordinate
y – Y coordinate
- Returns:
Coordinates label
- Return type:
- set_background_color(qcolor: QColor | str) None [source]¶
Set background color
- Parameters:
qcolor – Background color
- set_color_map(name_or_table: str | EditableColormap, invert: bool | None = None) None [source]¶
Set colormap
- Parameters:
name_or_table – Colormap name or colormap
invert – True to invert colormap, False otherwise (Default value = None, i.e. do not change the default behavior)
- get_color_map() EditableColormap | None [source]¶
Get colormap
- Returns:
Colormap
- set_interpolation(interp_mode: int, size: int | None = None) None [source]¶
Set interpolation mode
- Parameters:
interp_mode – INTERP_NEAREST, INTERP_LINEAR, INTERP_AA
size – (for anti-aliasing only) AA matrix size (Default value = None)
- set_lut_range(lut_range: tuple[float, float]) None [source]¶
Set the current active lut range
- Parameters:
lut_range – Lut range, tuple(min, max)
Example
>>> item.set_lut_range((0.0, 1.0))
- set_lut_threshold(threshold: float) None [source]¶
Set lut threshold value, eliminating the given percent of the histogram
- Parameters:
threshold – Lut threshold value
- draw_border(painter: QPainter, xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap, canvasRect: QRectF) None [source]¶
Draw image border rectangle
- Parameters:
painter – Painter
xMap – X axis scale map
yMap – Y axis scale map
canvasRect – Canvas rectangle
- draw_image(painter: QPainter, canvasRect: QRectF, src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) None [source]¶
Draw image
- Parameters:
painter – Painter
canvasRect – Canvas rectangle
src_rect – Source rectangle
dst_rect – Destination rectangle
xMap – X axis scale map
yMap – Y axis scale map
- export_roi(src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], dst_image: ndarray, apply_lut: bool = False, apply_interpolation: bool = False, original_resolution: bool = False, force_interp_mode: str | None = None, force_interp_size: int | None = None) None [source]¶
Export a rectangular area of the image to another image
- Parameters:
src_rect – Source rectangle
dst_rect – Destination rectangle
dst_image – Destination image
apply_lut – Apply lut (Default value = False)
apply_interpolation – Apply interpolation (Default value = False)
original_resolution – Original resolution (Default value = False)
force_interp_mode – Force interpolation mode (Default value = None)
force_interp_size – Force interpolation size (Default value = None)
- draw(painter: QPainter, xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap, canvasRect: QRectF) None [source]¶
Draw the item
- Parameters:
painter – Painter
xMap – X axis scale map
yMap – Y axis scale map
canvasRect – Canvas rectangle
- boundingRect() QRectF [source]¶
Return the bounding rectangle of the data
- Returns:
Bounding rectangle of the data
- setVisible(enable: bool) None [source]¶
Set item visibility
- Parameters:
enable – True if item is visible, False otherwise
- types() tuple[type[IItemType], ...] [source]¶
Returns a group or category for this item. This should be a tuple of class objects inheriting from IItemType
- Returns:
Tuple of class objects inheriting from IItemType
- Return type:
- set_readonly(state: bool) None [source]¶
Set object readonly state
- Parameters:
state – True if object is readonly, False otherwise
- is_readonly() bool [source]¶
Return object readonly state
- Returns:
True if object is readonly, False otherwise
- Return type:
- set_private(state: bool) None [source]¶
Set object as private
- Parameters:
state – True if object is private, False otherwise
- is_private() bool [source]¶
Return True if object is private
- Returns:
True if object is private, False otherwise
- Return type:
- select() None [source]¶
Select the object and eventually change its appearance to highlight the fact that it’s selected
- unselect() None [source]¶
Unselect the object and eventually restore its original appearance to highlight the fact that it’s not selected anymore
- is_empty() bool [source]¶
Return True if the item is empty
- Returns:
True if the item is empty, False otherwise
- set_selectable(state: bool) None [source]¶
Set item selectable state
- Parameters:
state – True if item is selectable, False otherwise
- set_resizable(state: bool) None [source]¶
Set item resizable state (or any action triggered when moving an handle, e.g. rotation)
- Parameters:
state – True if item is resizable, False otherwise
- set_movable(state: bool) None [source]¶
Set item movable state
- Parameters:
state – True if item is movable, False otherwise
- set_rotatable(state: bool) None [source]¶
Set item rotatable state
- Parameters:
state – True if item is rotatable, False otherwise
- can_select() bool [source]¶
Returns True if this item can be selected
- Returns:
True if item can be selected, False otherwise
- Return type:
- can_resize() bool [source]¶
Returns True if this item can be resized
- Returns:
True if item can be resized, False otherwise
- Return type:
- can_move() bool [source]¶
Returns True if this item can be moved
- Returns:
True if item can be moved, False otherwise
- Return type:
- can_rotate() bool [source]¶
Returns True if this item can be rotated
- Returns:
True if item can be rotated, False otherwise
- Return type:
- hit_test(pos: QPointF) tuple[float, float, bool, None] [source]¶
Return a tuple (distance, attach point, inside, other_object)
- Parameters:
pos – Position
- Returns:
- Tuple with four elements: (distance, attach point, inside,
other_object).
- Return type:
Description of the returned values:
- distance: distance in pixels (canvas coordinates) to the closest
attach point
attach point: handle of the attach point
inside: True if the mouse button has been clicked inside the object
- other_object: if not None, reference of the object which will be
considered as hit instead of self
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
- move_local_point_to(handle: int, pos: QPointF, ctrl: bool = None) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_local_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in canvas coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- move_with_selection(delta_x: float, delta_y: float) None [source]¶
Translate the item together with other selected items
- Parameters:
delta_x – Translation in plot coordinates along x-axis
delta_y – Translation in plot coordinates along y-axis
- resize_with_selection(zoom_dx, zoom_dy)[source]¶
Resize the shape together with other selected items zoom_dx, zoom_dy : zoom factor for dx and dy
- rotate_with_selection(angle)[source]¶
Rotate the shape together with other selected items angle : rotation angle
- can_sethistogram() bool [source]¶
Returns True if this item can be associated with a levels histogram
- Returns:
- True if item can be associated with a levels histogram,
False otherwise
- Return type:
- get_histogram(nbins: int, drange: tuple[float, float] | None = None) tuple[ndarray, ndarray] [source]¶
Return a tuple (hist, bins) where hist is a list of histogram values
- Parameters:
nbins – number of bins
drange – lower and upper range of the bins. If not provided, range is simply (data.min(), data.max()). Values outside the range are ignored.
- Returns:
Tuple (hist, bins)
- get_xsection(y0: float | int, apply_lut: bool = False) ndarray [source]¶
Return cross section along x-axis at y=y0
- Parameters:
y0 – Y0
apply_lut – Apply lut (Default value = False)
- Returns:
Cross section along x-axis at y=y0
- get_ysection(x0: float | int, apply_lut: bool = False) ndarray [source]¶
Return cross section along y-axis at x=x0
- Parameters:
x0 – X0
apply_lut – Apply lut (Default value = False)
- Returns:
Cross section along y-axis at x=x0
- get_average_xsection(x0: float, y0: float, x1: float, y1: float, apply_lut: bool = False) ndarray [source]¶
Return average cross section along x-axis for the given rectangle
- Parameters:
x0 – X0 of top left corner
y0 – Y0 of top left corner
x1 – X1 of bottom right corner
y1 – Y1 of bottom right corner
apply_lut – Apply lut (Default value = False)
- Returns:
Average cross section along x-axis
- get_average_ysection(x0: float, y0: float, x1: float, y1: float, apply_lut: bool = False) ndarray [source]¶
Return average cross section along y-axis
- Parameters:
x0 – X0 of top left corner
y0 – Y0 of top left corner
x1 – X1 of bottom right corner
y1 – Y1 of bottom right corner
apply_lut – Apply lut (Default value = False)
- Returns:
Average cross section along y-axis
- class plotpy.items.RawImageItem(data: ndarray | None = None, param: Any | None = None)[source]¶
Construct a simple image item
data: 2D NumPy array
param: image parameters (
styles.RawImageParam
instance)
- get_default_param() RawImageParam [source]¶
Return instance of the default image param DataSet
- Returns:
Default image param DataSet
- Return type:
- serialize(writer: guidata.io.HDF5Writer | guidata.io.INIWriter | guidata.io.JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: guidata.io.HDF5Reader | guidata.io.INIReader | guidata.io.JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- load_data(lut_range: list[float, float] | None = None) None [source]¶
Load data from item filename attribute and eventually apply specified lut_range
- Parameters:
lut_range – Lut range (Default value = None)
- types() tuple[type[IItemType], ...] [source]¶
Returns a group or category for this item. This should be a tuple of class objects inheriting from IItemType
- Returns:
Tuple of class objects inheriting from IItemType
- Return type:
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
- class plotpy.items.ImageItem(data: ndarray | None = None, param: ImageParam | None = None)[source]¶
Image item
- Parameters:
data – 2D NumPy array
param – Image parameters
- get_default_param() ImageParam [source]¶
Return instance of the default image param DataSet
- serialize(writer: guidata.io.HDF5Writer | guidata.io.INIWriter | guidata.io.JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: guidata.io.HDF5Reader | guidata.io.INIReader | guidata.io.JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- get_xdata(aligned=True) tuple[float, float] [source]¶
Get X data range
- Parameters:
aligned – True if aligned (Default value = True)
- Returns:
(xmin, xmax) tuple
- get_ydata(aligned=True) tuple[float, float] [source]¶
Get Y data range
- Parameters:
aligned – True if aligned (Default value = True)
- Returns:
(ymin, ymax) tuple
- set_xdata(xmin: float | None = None, xmax: float | None = None) None [source]¶
Set X data range
- Parameters:
xmin – Minimum X value
xmax – Maximum X value
- set_ydata(ymin: float | None = None, ymax: float | None = None) None [source]¶
Set Y data range
- Parameters:
ymin – Minimum Y value
ymax – Maximum Y value
- get_pixel_coordinates(xplot: float, yplot: float) tuple[float, float] [source]¶
Get pixel coordinates from plot coordinates
- Parameters:
xplot – X plot coordinate
yplot – Y plot coordinate
- Returns:
Pixel coordinates
- get_plot_coordinates(xpixel: float, ypixel: float) tuple[float, float] [source]¶
Get plot coordinates from pixel coordinates
- Parameters:
xpixel – X pixel coordinate
ypixel – Y pixel coordinate
- Returns:
Plot coordinates
- get_x_values(i0: int, i1: int) ndarray [source]¶
Get X values from pixel indexes
- Parameters:
i0 – First index
i1 – Second index
- Returns:
X values corresponding to the given pixel indexes
- get_y_values(j0: int, j1: int) ndarray [source]¶
Get Y values from pixel indexes
- Parameters:
j0 – First index
j1 – Second index
- Returns:
Y values corresponding to the given pixel indexes
- get_closest_coordinates(x: float, y: float) tuple[float, float] [source]¶
Get the closest coordinates to the given point
- draw_image(painter: QPainter, canvasRect: QRectF, src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) None [source]¶
Draw image
- Parameters:
painter – Painter
canvasRect – Canvas rectangle
src_rect – Source rectangle
dst_rect – Destination rectangle
xMap – X axis scale map
yMap – Y axis scale map
- export_roi(src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], dst_image: ndarray, apply_lut: bool = False, apply_interpolation: bool = False, original_resolution: bool = False, force_interp_mode: str | None = None, force_interp_size: int | None = None) None [source]¶
Export a rectangular area of the image to another image
- Parameters:
src_rect – Source rectangle
dst_rect – Destination rectangle
dst_image – Destination image
apply_lut – Apply lut (Default value = False)
apply_interpolation – Apply interpolation (Default value = False)
original_resolution – Original resolution (Default value = False)
force_interp_mode – Force interpolation mode (Default value = None)
force_interp_size – Force interpolation size (Default value = None)
- move_local_point_to(handle: int, pos: QPointF, ctrl: bool = None) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- class plotpy.items.TrImageItem(data=None, param=None)[source]¶
Construct a transformable image item
data: 2D NumPy array
param: image parameters (
styles.TrImageParam
instance)
- set_data(data: ndarray, lut_range: list[float, float] | None = None) None [source]¶
Set image data
- Parameters:
data – 2D NumPy array
lut_range – LUT range – tuple (levelmin, levelmax) (Default value = None)
- get_pixel_coordinates(xplot: float, yplot: float) tuple[float, float] [source]¶
Get pixel coordinates from plot coordinates
- Parameters:
xplot – X plot coordinate
yplot – Y plot coordinate
- Returns:
Pixel coordinates
- get_plot_coordinates(xpixel: float, ypixel: float) tuple[float, float] [source]¶
Get plot coordinates from pixel coordinates
- Parameters:
xpixel – X pixel coordinate
ypixel – Y pixel coordinate
- Returns:
Plot coordinates
- get_x_values(i0: int, i1: int) ndarray [source]¶
Get X values from pixel indexes
- Parameters:
i0 – First index
i1 – Second index
- Returns:
X values corresponding to the given pixel indexes
- get_y_values(j0: int, j1: int) ndarray [source]¶
Get Y values from pixel indexes
- Parameters:
j0 – First index
j1 – Second index
- Returns:
Y values corresponding to the given pixel indexes
- get_r_values(i0, i1, j0, j1, flag_circle=False)[source]¶
Get radial values from pixel indexes
- Parameters:
i0 – First index
i1 – Second index
j0 – Third index
j1 – Fourth index
flag_circle – Flag circle (Default value = False)
- Returns:
Radial values corresponding to the given pixel indexes
- get_closest_coordinates(x: float, y: float) tuple[float, float] [source]¶
Get the closest coordinates to the given point
- draw_image(painter: QPainter, canvasRect: QRectF, src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) None [source]¶
Draw image
- Parameters:
painter – Painter
canvasRect – Canvas rectangle
src_rect – Source rectangle
dst_rect – Destination rectangle
xMap – X axis scale map
yMap – Y axis scale map
- export_roi(src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], dst_image: ndarray, apply_lut: bool = False, apply_interpolation: bool = False, original_resolution: bool = False, force_interp_mode: str | None = None, force_interp_size: int | None = None) None [source]¶
Export a rectangular area of the image to another image
- Parameters:
src_rect – Source rectangle
dst_rect – Destination rectangle
dst_image – Destination image
apply_lut – Apply lut (Default value = False)
apply_interpolation – Apply interpolation (Default value = False)
original_resolution – Original resolution (Default value = False)
force_interp_mode – Force interpolation mode (Default value = None)
force_interp_size – Force interpolation size (Default value = None)
- move_local_point_to(handle: int, pos: QPointF, ctrl: bool = None) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_local_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in canvas coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- rotate_local_shape(old_pos, new_pos)[source]¶
Contrairement à move_local_point_to, le déplacement se fait entre les deux positions et non pas depuis un handle jusqu’à un point
- rotate_with_arrows(dangle)[source]¶
Rotate the shape with arrows in canvas coordinates angle0 : old rotation angle angle1 : new rotation angle
- move_with_selection(delta_x: float, delta_y: float) None [source]¶
Translate the item together with other selected items
- Parameters:
delta_x – Translation in plot coordinates along x-axis
delta_y – Translation in plot coordinates along y-axis
- resize_with_selection(zoom_dx, zoom_dy)[source]¶
Resize the shape together with other selected items zoom_dx, zoom_dy : zoom factor for dx and dy
- rotate_with_selection(angle)[source]¶
Rotate the shape together with other selected items angle0 : old rotation angle angle1 : new rotation angle
- set_transform(x0, y0, angle, dx=1.0, dy=1.0, hflip=False, vflip=False)[source]¶
Set the transformation
- Parameters:
x0 – X translation
y0 – Y translation
angle – rotation angle in radians
dx – X-scaling factor
dy – Y-scaling factor
hflip – True if image if flip horizontally
vflip – True if image is flip vertically
- class plotpy.items.XYImageItem(x: ndarray | None = None, y: ndarray | None = None, data: ndarray | None = None, param: XYImageParam | None = None)[source]¶
XY image item (non-linear axes)
- Parameters:
x – 1D NumPy array, must be increasing
y – 1D NumPy array, must be increasing
data – 2D NumPy array
param – image parameters
- get_default_param() XYImageParam [source]¶
Return instance of the default image param DataSet
- serialize(writer: guidata.io.HDF5Writer | guidata.io.INIWriter | guidata.io.JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: guidata.io.HDF5Reader | guidata.io.INIReader | guidata.io.JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- set_xy(x: ndarray | list[float], y: ndarray | list[float]) None [source]¶
Set X and Y data
- Parameters:
x – 1D NumPy array, must be increasing
y – 1D NumPy array, must be increasing
- Raises:
ValueError – If X or Y are not increasing
IndexError – If X or Y are not of the right length
- draw_image(painter: QPainter, canvasRect: QRectF, src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) None [source]¶
Draw image
- Parameters:
painter – Painter
canvasRect – Canvas rectangle
src_rect – Source rectangle
dst_rect – Destination rectangle
xMap – X axis scale map
yMap – Y axis scale map
- get_pixel_coordinates(xplot: float, yplot: float) tuple[float, float] [source]¶
Get pixel coordinates from plot coordinates
- Parameters:
xplot – X plot coordinate
yplot – Y plot coordinate
- Returns:
Pixel coordinates
- get_plot_coordinates(xpixel: float, ypixel: float) tuple[float, float] [source]¶
Get plot coordinates from pixel coordinates
- Parameters:
xpixel – X pixel coordinate
ypixel – Y pixel coordinate
- Returns:
Plot coordinates
- get_x_values(i0: int, i1: int) ndarray [source]¶
Get X values from pixel indexes
- Parameters:
i0 – First index
i1 – Second index
- Returns:
X values corresponding to the given pixel indexes
- get_y_values(j0: int, j1: int) ndarray [source]¶
Get Y values from pixel indexes
- Parameters:
j0 – First index
j1 – Second index
- Returns:
Y values corresponding to the given pixel indexes
- get_closest_coordinates(x: float, y: float) tuple[float, float] [source]¶
Get the closest coordinates to the given point
- class plotpy.items.RGBImageItem(data: ndarray | None = None, param: RGBImageParam | None = None)[source]¶
RGB image item
- Parameters:
data – 3D NumPy array (shape: NxMx[34] – 3: RGB, 4: RGBA)
param – image parameters
- get_default_param() RGBImageParam [source]¶
Return instance of the default image param DataSet
- set_lut_range(lut_range: tuple[float, float]) None [source]¶
Set the current active lut range
Warning
This method is not implemented for this item type.
- set_background_color(qcolor: QColor | str) None [source]¶
Set background color
- Parameters:
qcolor – Background color
Warning
This method is not implemented for this item type.
- set_color_map(name_or_table: str | EditableColormap, invert: bool | None = None) None [source]¶
Set colormap
- Parameters:
name_or_table – Colormap name or colormap
invert – True to invert colormap, False otherwise (Default value = None, i.e. do not change the default behavior)
- class plotpy.items.MaskedArea(geometry: str | None = None, x0: float | None = None, y0: float | None = None, x1: float | None = None, y1: float | None = None, inside: bool | None = None)[source]¶
Defines masked areas for a masked image item
- Parameters:
geometry – Geometry of the area (‘rectangular’ or anything else for circular)
x0 – X coordinate of first point
y0 – Y coordinate of first point
x1 – X coordinate of second point
y1 – Y coordinate of second point
inside – True if the area is inside the geometry, False if it is outside
- serialize(writer: HDF5Writer | INIWriter | JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: HDF5Reader | INIReader | JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- class plotpy.items.MaskedImageItem(data: ndarray | None = None, mask: ndarray | None = None, param: MaskedImageParam | None = None)[source]¶
Masked image item
- Parameters:
data – 2D NumPy array
mask – 2D NumPy array
param – image parameters
- get_default_param() MaskedImageParam [source]¶
Return instance of the default MaskedImageParam DataSet
- serialize(writer: HDF5Writer | INIWriter | JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: HDF5Reader | INIReader | JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- draw_image(painter: QPainter, canvasRect: QRectF, src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) None [source]¶
Draw image
- Parameters:
painter – Painter
canvasRect – Canvas rectangle
src_rect – Source rectangle
dst_rect – Destination rectangle
xMap – X axis scale map
yMap – Y axis scale map
- class plotpy.items.MaskedXYImageItem(x: ndarray | None = None, y: ndarray | None = None, data: ndarray | None = None, mask: ndarray | None = None, param: MaskedXYImageParam | None = None)[source]¶
XY masked image item
- Parameters:
x – 1D NumPy array, must be increasing
y – 1D NumPy array, must be increasing
data – 2D NumPy array
mask – 2D NumPy array
param – image parameters
- get_default_param() MaskedXYImageParam [source]¶
Return instance of the default MaskedXYImageParam DataSet
- serialize(writer: HDF5Writer | INIWriter | JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: HDF5Reader | INIReader | JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- draw_image(painter: QPainter, canvasRect: QRectF, src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) None [source]¶
Draw image
- Parameters:
painter – Painter
canvasRect – Canvas rectangle
src_rect – Source rectangle
dst_rect – Destination rectangle
xMap – X axis scale map
yMap – Y axis scale map
- class plotpy.items.ImageFilterItem(image: RawImageItem | None, filter: Callable, param: ImageFilterParam)[source]¶
Construct a rectangular area image filter item
image:
RawImageItem
instancefilter: function (x, y, data) –> data
param: image filter parameters (
ImageFilterParam
instance)
- set_image(image: RawImageItem | None) None [source]¶
Set the image item on which the filter will be applied
image:
RawImageItem
instance
- set_filter(filter: Callable) None [source]¶
Set the filter function
filter: function (x, y, data) –> data
- boundingRect() QRectF [source]¶
Return the bounding rectangle of the shape
- Returns:
Bounding rectangle of the shape
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
- move_local_point_to(handle: int, pos: QPointF, ctrl: bool = None) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_local_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in canvas coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- move_with_selection(delta_x: float, delta_y: float) None [source]¶
Translate the item together with other selected items
- Parameters:
delta_x – Translation in plot coordinates along x-axis
delta_y – Translation in plot coordinates along y-axis
- set_color_map(name_or_table: str | EditableColormap, invert: bool | None = None) None [source]¶
Set colormap
- Parameters:
name_or_table – Colormap name or colormap
invert – True to invert colormap, False otherwise (Default value = None, i.e. do not change the default behavior)
- get_color_map() qwt.color_map.QwtLinearColorMap [source]¶
Get colormap
- set_lut_range(lut_range: tuple[float, float]) None [source]¶
Set the current active lut range
- Parameters:
lut_range – Lut range, tuple(min, max)
Example
>>> item.set_lut_range((0.0, 1.0))
- class plotpy.items.XYImageFilterItem(image: XYImageItem, filter: Callable, param: ImageFilterParam)[source]¶
Construct a rectangular area image filter item
image:
XYImageItem
instancefilter: function (x, y, data) –> data
param: image filter parameters (
ImageFilterParam
instance)
- set_image(image)[source]¶
Set the image item on which the filter will be applied
image:
XYImageItem
instance
- draw_image(painter: QPainter, canvasRect: QRectF, src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) None [source]¶
Draw image
- Parameters:
painter – Painter
canvasRect – Canvas rectangle
src_rect – Source rectangle
dst_rect – Destination rectangle
xMap – X axis scale map
yMap – Y axis scale map
- class plotpy.items.QuadGridItem(X: ndarray, Y: ndarray, Z: ndarray, param: QuadGridParam | None = None)[source]¶
Quad grid item
- Parameters:
X – X coordinates
Y – Y coordinates
Z – Z coordinates
param – Image parameters
X, Y, Z: A structured grid of quadrilaterals, each quad is defined by (X[i], Y[i]), (X[i], Y[i+1]), (X[i+1], Y[i+1]), (X[i+1], Y[i])
- get_default_param() QuadGridParam [source]¶
Return instance of the default image param DataSet
- types() tuple[type[IItemType], ...] [source]¶
Returns a group or category for this item. This should be a tuple of class objects inheriting from IItemType
- Returns:
Tuple of class objects inheriting from IItemType
- Return type:
- set_data(data: ndarray, X: ndarray | None = None, Y: ndarray | None = None, lut_range: list[float, float] | None = None) None [source]¶
Set image data
- Parameters:
data – 2D NumPy array
X – X coordinates (Default value = None)
Y – Y coordinates (Default value = None)
lut_range – LUT range – tuple (levelmin, levelmax) (Default value = None)
- draw_image(painter: QPainter, canvasRect: QRectF, src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) None [source]¶
Draw image
- Parameters:
painter – Painter
canvasRect – Canvas rectangle
src_rect – Source rectangle
dst_rect – Destination rectangle
xMap – X axis scale map
yMap – Y axis scale map
- plotpy.items.assemble_imageitems(items: list[BaseImageItem], src_qrect: QRectF, destw: int, desth: int, align: int | None = None, add_images: bool = False, apply_lut: bool = False, apply_interpolation: bool = False, original_resolution: bool = False, force_interp_mode: str | None = None, force_interp_size: int | None = None) ndarray [source]¶
Assemble together image items and return resulting pixel data
- Parameters:
items – List of image items
src_qrect – Source rectangle
destw – Destination width
desth – Destination height
align – Alignment (Default value = None)
add_images – Add images (Default value = False)
apply_lut – Apply LUT (Default value = False)
apply_interpolation – Apply interpolation (Default value = False)
original_resolution – Original resolution (Default value = False)
force_interp_mode – Force interpolation mode (Default value = None)
force_interp_size – Force interpolation size (Default value = None)
- Returns:
Pixel data
Warning
Does not support XYImageItem objects
- plotpy.items.get_plot_qrect(plot: qwt.plot.QwtPlot, p0: QPointF, p1: QPointF) QRectF [source]¶
Get plot rectangle, in plot coordinates, from two canvas points
- Parameters:
plot – Plot
p0 – First point
p1 – Second point
- Returns:
Plot rectangle
- plotpy.items.get_image_from_plot(plot: BasePlot, p0: QPointF, p1: QPointF, destw: int | None = None, desth: int | None = None, add_images: bool = False, apply_lut: bool = False, apply_interpolation: bool = False, original_resolution: bool = False, force_interp_mode: str | None = None, force_interp_size: int | None = None) numpy.ndarray [source]¶
Get image pixel data from plot area
- Parameters:
plot – Plot
p0 – First point (top-left)
p1 – Second point (bottom-right)
destw – Destination width (Default value = None)
desth – Destination height (Default value = None)
add_images – Add superimposed images (instead of replace by the foreground)
apply_lut – Apply LUT (Default value = False)
apply_interpolation – Apply interpolation (Default value = False)
original_resolution – Original resolution (Default value = False)
force_interp_mode – Force interpolation mode (Default value = None)
force_interp_size – Force interpolation size (Default value = None)
- Returns:
Image pixel data
Warning
Support only the image items implementing the IExportROIImageItemType interface, i.e. this does not support XYImageItem objects
Contours¶
- class plotpy.items.contour.ContourLine(title: str | None = None, comment: str | None = None, icon: str = '', readonly: bool = False)[source]¶
A contour line
- plotpy.items.contour.compute_contours(Z: ndarray, levels: float | ndarray, X: ndarray | None = None, Y: ndarray | None = None) list[ContourLine] [source]¶
Create contour curves
- Parameters:
Z – The height values over which the contour is drawn.
levels – Determines the number and positions of the contour lines/regions. If a float, draw contour lines at this specified levels If array-like, draw contour lines at the specified levels. The values must be in increasing order.
X – The coordinates of the values in Z. X must be 2-D with the same shape as Z (e.g. created via
numpy.meshgrid
), or it must both be 1-D such thatlen(X) == M
is the number of columns in Z. If none, they are assumed to be integer indices, i.e.X = range(M)
.Y – The coordinates of the values in Z. Y must be 2-D with the same shape as Z (e.g. created via
numpy.meshgrid
), or it must both be 1-D such thatlen(Y) == N
is the number of rows in Z. If none, they are assumed to be integer indices, i.e.Y = range(N)
.
- Returns:
A list of
ContourLine
instances.
- plotpy.items.create_contour_items(Z: ndarray, levels: float | ndarray, X: ndarray | None = None, Y: ndarray | None = None) list[ContourItem] [source]¶
Create contour items
- Parameters:
Z – The height values over which the contour is drawn.
levels – Determines the number and positions of the contour lines/regions. If a float, draw contour lines at this specified levels If array-like, draw contour lines at the specified levels. The values must be in increasing order.
X – The coordinates of the values in Z. X must be 2-D with the same shape as Z (e.g. created via
numpy.meshgrid
), or it must both be 1-D such thatlen(X) == M
is the number of columns in Z. If none, they are assumed to be integer indices, i.e.X = range(M)
.Y – The coordinates of the values in Z. Y must be 2-D with the same shape as Z (e.g. created via
numpy.meshgrid
), or it must both be 1-D such thatlen(Y) == N
is the number of rows in Z. If none, they are assumed to be integer indices, i.e.Y = range(N)
.
- Returns:
A list of
ContourItem
instances.
Histograms¶
- class plotpy.items.HistogramItem(curveparam: CurveParam | None = None, histparam: HistogramParam | None = None, keep_weakref: bool = False)[source]¶
Histogram plot item
- Parameters:
curveparam – Curve parameters
histparam – Histogram parameters
- set_hist_source(src: BaseImageItem) None [source]¶
Set histogram source
- Parameters:
src – Object with method get_histogram, e.g. objects derived from
ImageItem
- get_hist_source() BaseImageItem | None [source]¶
Return histogram source
- set_logscale(state: bool) None [source]¶
Sets whether we use a logarithm or linear scale for the histogram counts
- Parameters:
state – True for logarithmic scale
- get_logscale() bool | None [source]¶
Returns the status of the scale
- Returns:
True for logarithmic scale
- Return type:
- set_bin_range(bin_range: tuple[float, float] | None) None [source]¶
Sets the range of the bins
- Parameters:
bin_range – (min, max) or None for automatic range
- get_bin_range() tuple[float, float] | None [source]¶
Returns the range of the bins
- Returns:
(min, max)
- Return type:
- compute_histogram() tuple[ndarray, ndarray] [source]¶
Compute histogram data
- Returns:
(hist, bins)
- Return type:
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- class plotpy.items.Histogram2DItem(X: ndarray, Y: ndarray, param: Histogram2DParam | None = None, Z=None)[source]¶
2D histogram item
- Parameters:
X – X coordinates (1-D array)
Y – Y coordinates (1-D array)
param – Histogram parameters
- get_default_param() Histogram2DParam [source]¶
Return instance of the default image param DataSet
- set_bins(NX: int, NY: int) None [source]¶
Set histogram bins
- Parameters:
NX – Number of bins along X
NY – Number of bins along Y
- set_data(X: ndarray, Y: ndarray, Z: ndarray | None = None) None [source]¶
Set histogram data
- Parameters:
X – X coordinates
Y – Y coordinates
Z – Z coordinates (Default value = None)
- draw_image(painter: QPainter, canvasRect: QRectF, src_rect: tuple[float, float, float, float], dst_rect: tuple[float, float, float, float], xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) None [source]¶
Draw image
- Parameters:
painter – Painter
canvasRect – Canvas rectangle
src_rect – Source rectangle
dst_rect – Destination rectangle
xMap – X axis scale map
yMap – Y axis scale map
- types() tuple[type[IItemType], ...] [source]¶
Returns a group or category for this item. This should be a tuple of class objects inheriting from IItemType
- Returns:
Tuple of class objects inheriting from IItemType
- Return type:
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
- can_sethistogram() bool [source]¶
Returns True if this item can be associated with a levels histogram
- Returns:
- True if item can be associated with a levels histogram,
False otherwise
- Return type:
- get_histogram(nbins: int, drange: tuple[float, float] | None = None) tuple[ndarray, ndarray] [source]¶
Return a tuple (hist, bins) where hist is a list of histogram values
- Parameters:
nbins – number of bins
drange – lower and upper range of the bins. If not provided, range is simply (data.min(), data.max()). Values outside the range are ignored.
- Returns:
Tuple (hist, bins)
Grid¶
- class plotpy.items.GridItem(gridparam: GridParam | None = None)[source]¶
Grid plot item
- Parameters:
gridparam – Grid parameters
- types() tuple[type[IItemType], ...] [source]¶
Returns a group or category for this item. This should be a tuple of class objects inheriting from IItemType
- Returns:
Tuple of class objects inheriting from IItemType
- Return type:
- set_readonly(state: bool) None [source]¶
Set object readonly state
- Parameters:
state – True if object is readonly, False otherwise
- is_readonly() bool [source]¶
Return object readonly state
- Returns:
True if object is readonly, False otherwise
- Return type:
- set_private(state: bool) None [source]¶
Set object as private
- Parameters:
state – True if object is private, False otherwise
- is_private() bool [source]¶
Return True if object is private
- Returns:
True if object is private, False otherwise
- Return type:
- set_selectable(state: bool) None [source]¶
Set item selectable state
- Parameters:
state – True if item is selectable, False otherwise
- set_resizable(state: bool) None [source]¶
Set item resizable state (or any action triggered when moving an handle, e.g. rotation)
- Parameters:
state – True if item is resizable, False otherwise
- set_movable(state: bool) None [source]¶
Set item movable state
- Parameters:
state – True if item is movable, False otherwise
- set_rotatable(state: bool) None [source]¶
Set item rotatable state
- Parameters:
state – True if item is rotatable, False otherwise
- can_select() bool [source]¶
Returns True if this item can be selected
- Returns:
True if item can be selected, False otherwise
- Return type:
- can_resize() bool [source]¶
Returns True if this item can be resized
- Returns:
True if item can be resized, False otherwise
- Return type:
- can_rotate() bool [source]¶
Returns True if this item can be rotated
- Returns:
True if item can be rotated, False otherwise
- Return type:
- can_move() bool [source]¶
Returns True if this item can be moved
- Returns:
True if item can be moved, False otherwise
- Return type:
- select() None [source]¶
Select the object and eventually change its appearance to highlight the fact that it’s selected
- unselect() None [source]¶
Unselect the object and eventually restore its original appearance to highlight the fact that it’s not selected anymore
- hit_test(pos: QPointF) tuple[float, float, bool, None] [source]¶
Return a tuple (distance, attach point, inside, other_object)
- Parameters:
pos – Position
- Returns:
- Tuple with four elements: (distance, attach point, inside,
other_object).
- Return type:
Description of the returned values:
- distance: distance in pixels (canvas coordinates) to the closest
attach point
attach point: handle of the attach point
inside: True if the mouse button has been clicked inside the object
- other_object: if not None, reference of the object which will be
considered as hit instead of self
- move_local_point_to(handle: int, pos: QPointF, ctrl: bool = None) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_local_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in canvas coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- move_with_selection(delta_x: float, delta_y: float) None [source]¶
Translate the item together with other selected items
- Parameters:
delta_x – Translation in plot coordinates along x-axis
delta_y – Translation in plot coordinates along y-axis
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
Shapes¶
- class plotpy.items.AbstractShape[source]¶
Abstract shape class
- set_selectable(state: bool) None [source]¶
Set item selectable state
- Parameters:
state – True if item is selectable, False otherwise
- set_resizable(state: bool) None [source]¶
Set item resizable state (or any action triggered when moving an handle, e.g. rotation)
- Parameters:
state – True if item is resizable, False otherwise
- set_movable(state: bool) None [source]¶
Set item movable state
- Parameters:
state – True if item is movable, False otherwise
- set_rotatable(state: bool) None [source]¶
Set item rotatable state
- Parameters:
state – True if item is rotatable, False otherwise
- can_select() bool [source]¶
Returns True if this item can be selected
- Returns:
True if item can be selected, False otherwise
- Return type:
- can_resize() bool [source]¶
Returns True if this item can be resized
- Returns:
True if item can be resized, False otherwise
- Return type:
- can_rotate() bool [source]¶
Returns True if this item can be rotated
- Returns:
True if item can be rotated, False otherwise
- Return type:
- can_move() bool [source]¶
Returns True if this item can be moved
- Returns:
True if item can be moved, False otherwise
- Return type:
- types() tuple[type[IItemType], ...] [source]¶
Returns a group or category for this item. This should be a tuple of class objects inheriting from IItemType
- Returns:
Tuple of class objects inheriting from IItemType
- Return type:
- set_readonly(state: bool) None [source]¶
Set object readonly state
- Parameters:
state – True if object is readonly, False otherwise
- is_readonly() bool [source]¶
Return object readonly state
- Returns:
True if object is readonly, False otherwise
- Return type:
- set_private(state: bool) None [source]¶
Set object as private
- Parameters:
state – True if object is private, False otherwise
- is_private() bool [source]¶
Return True if object is private
- Returns:
True if object is private, False otherwise
- Return type:
- select() None [source]¶
Select the object and eventually change its appearance to highlight the fact that it’s selected
- unselect() None [source]¶
Unselect the object and eventually restore its original appearance to highlight the fact that it’s not selected anymore
- hit_test(pos: QPointF) tuple[float, float, bool, None] [source]¶
Return a tuple (distance, attach point, inside, other_object)
- Parameters:
pos – Position
- Returns:
- Tuple with four elements: (distance, attach point, inside,
other_object).
- Return type:
Description of the returned values:
- distance: distance in pixels (canvas coordinates) to the closest
attach point
attach point: handle of the attach point
inside: True if the mouse button has been clicked inside the object
- other_object: if not None, reference of the object which will be
considered as hit instead of self
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams)[source]¶
Change the appearance of this item according to the parameter set provided
params is a list of Datasets of the same types as those returned by get_item_parameters
- move_local_point_to(handle: int, pos: QPointF, ctrl: bool = False) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_local_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in canvas coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- move_with_selection(delta_x: float, delta_y: float) None [source]¶
Translate the item together with other selected items
- Parameters:
delta_x – Translation in plot coordinates along x-axis
delta_y – Translation in plot coordinates along y-axis
- move_point_to(handle: int, pos: tuple[float, float], ctrl: bool = False) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- class plotpy.items.PolygonShape(points: list[tuple[float, float]] | ndarray | None = None, closed: bool | None = None, shapeparam: ShapeParam | None = None)[source]¶
Polygon shape class
- Parameters:
points – List of point coordinates
closed – True if the polygon is closed, False otherwise
shapeparam – Shape parameters
- types() tuple[type[IItemType], ...] [source]¶
Returns a group or category for this item. This should be a tuple of class objects inheriting from IItemType
- Returns:
Tuple of class objects inheriting from IItemType
- Return type:
- serialize(writer: guidata.io.HDF5Writer | guidata.io.INIWriter | guidata.io.JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: guidata.io.HDF5Reader | guidata.io.INIReader | guidata.io.JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- set_style(section: str, option: str) None [source]¶
Set style for this item
- Parameters:
section – Section
option – Option
- set_points(points: list[tuple[float, float]] | ndarray | None) None [source]¶
Set polygon points
- Parameters:
points – List of point coordinates
- get_points() ndarray [source]¶
Return polygon points
- Returns:
Polygon points (array of shape (N, 2))
- set_closed(state: bool) None [source]¶
Set closed state
- Parameters:
state – True if the polygon is closed, False otherwise
- is_closed() bool [source]¶
Return True if the polygon is closed, False otherwise
- Returns:
True if the polygon is closed, False otherwise
- get_center() tuple[float, float] [source]¶
Return the center of the polygon
- Returns:
Center of the polygon
- boundingRect() QRectF [source]¶
Return the bounding rectangle of the data
- Returns:
Bounding rectangle of the data
- is_empty() bool [source]¶
Return True if the item is empty
- Returns:
True if the item is empty, False otherwise
- get_bounding_rect_coords() tuple[float, float, float, float] [source]¶
Return bounding rectangle coordinates (in plot coordinates)
- Returns:
Bounding rectangle coordinates (in plot coordinates)
- transform_points(xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) QPolygonF [source]¶
Transform points to canvas coordinates
- Parameters:
xMap – X axis scale map
yMap – Y axis scale map
- Returns:
Transformed points
- get_reference_point() tuple[float, float] | None [source]¶
Return a reference point for the item
- Returns:
Reference point for the item
- get_pen_brush(xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) tuple[QPen, QBrush, qwt.symbol.QwtSymbol] [source]¶
Get pen, brush and symbol for the item
- Parameters:
xMap – X axis scale map
yMap – Y axis scale map
- Returns:
Tuple with pen, brush and symbol for the item
- draw(painter: QPainter, xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap, canvasRect: QRectF) None [source]¶
Draw the item
- Parameters:
painter – Painter
xMap – X axis scale map
yMap – Y axis scale map
canvasRect – Canvas rectangle
- poly_hit_test(plot: BasePlot, ax: int, ay: int, pos: QPointF) tuple [source]¶
Return a tuple (distance, attach point, inside, other_object)
- Parameters:
plot – Plot
ax – X axis index
ay – Y axis index
pos – Position
- Returns:
Tuple with four elements (distance, attach point, inside, other_object).
- hit_test(pos: QPointF) tuple[float, float, bool, None] [source]¶
Return a tuple (distance, attach point, inside, other_object)
- Parameters:
pos – Position
- Returns:
- Tuple with four elements: (distance, attach point, inside,
other_object).
- Return type:
Description of the returned values:
- distance: distance in pixels (canvas coordinates) to the closest
attach point
attach point: handle of the attach point
inside: True if the mouse button has been clicked inside the object
- other_object: if not None, reference of the object which will be
considered as hit instead of self
- add_local_point(pos: tuple[float, float]) int [source]¶
Add a point in canvas coordinates (local coordinates)
- Parameters:
pos – Position
- Returns:
Handle of the added point
- add_point(pt: tuple[float, float]) int [source]¶
Add a point in axis coordinates
- Parameters:
pt – Position
- Returns:
Handle of the added point
- del_point(handle: int) int [source]¶
Delete a point
- Parameters:
handle – Handle
- Returns:
Handle of the deleted point
- move_point_to(handle: int, pos: tuple[float, float], ctrl: bool = False) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in axis coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
- class plotpy.items.RectangleShape(x1: float = 0.0, y1: float = 0.0, x2: float = 0.0, y2: float = 0.0, shapeparam: ShapeParam | None = None)[source]¶
Rectangle shape
- Parameters:
x1 – X coordinate of the top-left corner
y1 – Y coordinate of the top-left corner
x2 – X coordinate of the bottom-right corner
y2 – Y coordinate of the bottom-right corner
shapeparam – Shape parameters
- set_rect(x1: float, y1: float, x2: float, y2: float) None [source]¶
Set the coordinates of the rectangle
- Parameters:
x1 – X coordinate of the top-left corner
y1 – Y coordinate of the top-left corner
x2 – X coordinate of the bottom-right corner
y2 – Y coordinate of the bottom-right corner
- class plotpy.items.ObliqueRectangleShape(x0: float = 0.0, y0: float = 0.0, x1: float = 0.0, y1: float = 0.0, x2: float = 0.0, y2: float = 0.0, x3: float = 0.0, y3: float = 0.0, shapeparam: ShapeParam | None = None)[source]¶
Oblique rectangle shape
- Parameters:
x0 – X coordinate of the top-left corner
y0 – Y coordinate of the top-left corner
x1 – X coordinate of the top-right corner
y1 – Y coordinate of the top-right corner
x2 – X coordinate of the bottom-right corner
y2 – Y coordinate of the bottom-right corner
x3 – X coordinate of the bottom-left corner
y3 – Y coordinate of the bottom-left corner
shapeparam – Shape parameters
- set_rect(x0: float, y0: float, x1: float, y1: float, x2: float, y2: float, x3: float, y3: float) None [source]¶
Set the coordinates of the rectangle
- Parameters:
x0 – X coordinate of the top-left corner
y0 – Y coordinate of the top-left corner
x1 – X coordinate of the top-right corner
y1 – Y coordinate of the top-right corner
x2 – X coordinate of the bottom-right corner
y2 – Y coordinate of the bottom-right corner
x3 – X coordinate of the bottom-left corner
y3 – Y coordinate of the bottom-left corner
x: additionnal points (handles used for rotation -- other handles being used for rectangle resizing) (x0, y0)------>(x1, y1) ↑ | | | x x | | | ↓ (x3, y3)<------(x2, y2)
- class plotpy.items.PointShape(x: float = 0.0, y: float = 0.0, shapeparam: ShapeParam = None)[source]¶
Point shape
- Parameters:
x – X coordinate
y – Y coordinate
shapeparam – Shape parameters
- set_pos(x: float, y: float) None [source]¶
Set the point coordinates to (x, y)
- Parameters:
x – X coordinate
y – Y coordinate
- class plotpy.items.SegmentShape(x1: float = 0.0, y1: float = 0.0, x2: float = 0.0, y2: float = 0.0, shapeparam: ShapeParam = None)[source]¶
Segment shape
- Parameters:
x1 – X coordinate of the first point
y1 – Y coordinate of the first point
x2 – X coordinate of the second point
y2 – Y coordinate of the second point
shapeparam – Shape parameters
- set_rect(x1: float, y1: float, x2: float, y2: float) None [source]¶
Set the segment coordinates
- Parameters:
x1 – X coordinate of the first point
y1 – Y coordinate of the first point
x2 – X coordinate of the second point
y2 – Y coordinate of the second point
- class plotpy.items.EllipseShape(x1: float = 0.0, y1: float = 0.0, x2: float = 0.0, y2: float = 0.0, shapeparam: ShapeParam = None)[source]¶
Ellipse shape
- Parameters:
x1 – X coordinate of the first point
y1 – Y coordinate of the first point
x2 – X coordinate of the second point
y2 – Y coordinate of the second point
shapeparam – Shape parameters
- set_xdiameter(x0: float, y0: float, x1: float, y1: float) None [source]¶
Set the coordinates of the ellipse’s X-axis diameter
- Parameters:
x0 – X coordinate of the first point
y0 – Y coordinate of the first point
x1 – X coordinate of the second point
y1 – Y coordinate of the second point
- get_xdiameter() tuple[tuple[float, float], tuple[float, float]] [source]¶
Return the coordinates of the ellipse’s X-axis diameter
- Returns:
Tuple with two tuples of floats
- set_ydiameter(x2: float, y2: float, x3: float, y3: float) None [source]¶
Set the coordinates of the ellipse’s Y-axis diameter
- Parameters:
x2 – X coordinate of the first point
y2 – Y coordinate of the first point
x3 – X coordinate of the second point
y3 – Y coordinate of the second point
- get_ydiameter() tuple[tuple[float, float], tuple[float, float]] [source]¶
Return the coordinates of the ellipse’s Y-axis diameter
- Returns:
Tuple with two tuples of floats
- get_rect() tuple[float, float, float, float] [source]¶
Get the bounding rectangle of the shape
- Returns:
Tuple with four floats
Warning
This method is valid for circle only!
- boundingRect() QRectF [source]¶
Return the bounding rectangle of the shape
- Returns:
Bounding rectangle of the shape
- get_center() tuple[float, float] [source]¶
Return center coordinates
- Returns:
Tuple with two floats (x, y)
- set_rect(x0: float, y0: float, x1: float, y1: float) None [source]¶
Set the bounding rectangle of the shape
- Parameters:
x0 – X coordinate of the first point
y0 – Y coordinate of the first point
x1 – X coordinate of the second point
y1 – Y coordinate of the second point
Warning
This method is valid for circle only!
- compute_elements(xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap) tuple[QPolygonF, QLineF, QLineF, QRectF] [source]¶
Return points, lines and ellipse rect
- Parameters:
xMap – X axis scale map
yMap – Y axis scale map
- Returns:
Tuple with four elements (points, line0, line1, rect)
- hit_test(pos: QPointF) tuple[float, float, bool, None] [source]¶
Return a tuple (distance, attach point, inside, other_object)
- Parameters:
pos – Position
- Returns:
- Tuple with four elements: (distance, attach point, inside,
other_object).
- Return type:
Description of the returned values:
- distance: distance in pixels (canvas coordinates) to the closest
attach point
attach point: handle of the attach point
inside: True if the mouse button has been clicked inside the object
- other_object: if not None, reference of the object which will be
considered as hit instead of self
- draw(painter: QPainter, xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap, canvasRect: QRectF) None [source]¶
Draw the item
- Parameters:
painter – Painter
xMap – X axis scale map
yMap – Y axis scale map
canvasRect – Canvas rectangle
- class plotpy.items.Axes(p0: tuple[float, float] = (0, 0), p1: tuple[float, float] = (0, 0), p2: tuple[float, float] = (0, 0), axesparam: AxesShapeParam = None, shapeparam: ShapeParam = None)[source]¶
Axes shape
- Parameters:
p0 – First point (0,1)
p1 – Second point (1,1)
p2 – Third point (0,0)
axesparam – Axes parameters
shapeparam – Shape parameters
- serialize(writer: guidata.io.HDF5Writer | guidata.io.INIWriter | guidata.io.JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: guidata.io.HDF5Reader | guidata.io.INIReader | guidata.io.JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- get_transform_matrix(dx: float = 1.0, dy: float = 1.0) ndarray [source]¶
Return the transformation matrix
- Parameters:
dx – X scale
dy – Y scale
- Returns:
Transformation matrix
- set_rect(p0: tuple[float, float], p1: tuple[float, float], p2: tuple[float, float]) None [source]¶
Set the coordinates of the axes
- Parameters:
p0 – First point (0,1)
p1 – Second point (1,1)
p2 – Third point (0,0)
- set_style(section: str, option: str) None [source]¶
Set style for this item
- Parameters:
section – Section
option – Option
- move_point_to(handle: int, pos: tuple[float, float], ctrl: bool = False) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in axis coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- draw(painter: QPainter, xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap, canvasRect: QRectF) None [source]¶
Draw the item
- Parameters:
painter – Painter
xMap – X axis scale map
yMap – Y axis scale map
canvasRect – Canvas rectangle
- draw_arrow(painter: QPainter, xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap, p0: tuple[float, float], p1: tuple[float, float]) None [source]¶
Draw an arrow
- Parameters:
painter – Painter
xMap – X axis scale map
yMap – Y axis scale map
p0 – First point
p1 – Second point
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
- class plotpy.items.XRangeSelection(_min: float | None = None, _max: float | None = None, shapeparam: RangeShapeParam | None = None)[source]¶
X range selection shape
- Parameters:
_min – Minimum value
_max – Maximum value
shapeparam – Shape parameters
- set_style(section: str, option: str) None [source]¶
Set style for this item
- Parameters:
section – Section
option – Option
- serialize(writer: HDF5Writer | INIWriter | JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: HDF5Reader | INIReader | JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- get_handles_pos() tuple[float, float, float] [source]¶
Return the handles position
- Returns:
Tuple with three elements (x0, x1, y).
- draw(painter: QPainter, xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap, canvasRect: QRectF) None [source]¶
Draw the item
- Parameters:
painter – Painter
xMap – X axis scale map
yMap – Y axis scale map
canvasRect – Canvas rectangle
- hit_test(pos: QPointF) tuple[float, float, bool, None] [source]¶
Return a tuple (distance, attach point, inside, other_object)
- Parameters:
pos – Position
- Returns:
- Tuple with four elements: (distance, attach point, inside,
other_object).
- Return type:
Description of the returned values:
- distance: distance in pixels (canvas coordinates) to the closest
attach point
attach point: handle of the attach point
inside: True if the mouse button has been clicked inside the object
- other_object: if not None, reference of the object which will be
considered as hit instead of self
- move_local_point_to(handle: int, pos: QPointF, ctrl: bool = None) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_point_to(handle: int, pos: tuple[float, float], ctrl: bool = False) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- get_range() tuple[float, float] [source]¶
Return the range
- Returns:
Tuple with two elements (min, max).
- set_range(_min: float, _max: float, dosignal: bool = True) None [source]¶
Set the range
- Parameters:
_min – Minimum value
_max – Maximum value
dosignal – True to emit the SIG_RANGE_CHANGED signal
- move_shape(old_pos: tuple[float, float], new_pos: tuple[float, float]) None [source]¶
Translate the shape such that old_pos becomes new_pos in axis coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
- class plotpy.items.Marker(label_cb: Callable | None = None, constraint_cb: Callable | None = None, markerparam: MarkerParam = None)[source]¶
Marker shape
- Parameters:
label_cb – Label callback (must return a string, takes x and y as arguments)
constraint_cb – Constraint callback (must return a tuple (x, y), takes x and y as arguments)
markerparam – Marker parameters
Note
Marker class derives from QwtPlotMarker, which is a QwtPlotItem. That is why AbstractShape methods are re-implemented here.
- serialize(writer: guidata.io.HDF5Writer | guidata.io.INIWriter | guidata.io.JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: guidata.io.HDF5Reader | guidata.io.INIReader | guidata.io.JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- draw(painter: QPainter, xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap, canvasRect: QRectF) None [source]¶
Draw the item
- Parameters:
painter – Painter
xMap – X axis scale map
yMap – Y axis scale map
canvasRect – Canvas rectangle
- set_selectable(state: bool) None [source]¶
Set item selectable state
- Parameters:
state – True if item is selectable, False otherwise
- set_resizable(state: bool) None [source]¶
Set item resizable state (or any action triggered when moving an handle, e.g. rotation)
- Parameters:
state – True if item is resizable, False otherwise
- set_movable(state: bool) None [source]¶
Set item movable state
- Parameters:
state – True if item is movable, False otherwise
- set_rotatable(state: bool) None [source]¶
Set item rotatable state
- Parameters:
state – True if item is rotatable, False otherwise
- can_select() bool [source]¶
Returns True if this item can be selected
- Returns:
True if item can be selected, False otherwise
- Return type:
- can_resize() bool [source]¶
Returns True if this item can be resized
- Returns:
True if item can be resized, False otherwise
- Return type:
- can_rotate() bool [source]¶
Returns True if this item can be rotated
- Returns:
True if item can be rotated, False otherwise
- Return type:
- can_move() bool [source]¶
Returns True if this item can be moved
- Returns:
True if item can be moved, False otherwise
- Return type:
- types() tuple[type[IItemType], ...] [source]¶
Returns a group or category for this item. This should be a tuple of class objects inheriting from IItemType
- Returns:
Tuple of class objects inheriting from IItemType
- Return type:
- set_readonly(state: bool) None [source]¶
Set object readonly state
- Parameters:
state – True if object is readonly, False otherwise
- is_readonly() bool [source]¶
Return object readonly state
- Returns:
True if object is readonly, False otherwise
- Return type:
- set_private(state: bool) None [source]¶
Set object as private
- Parameters:
state – True if object is private, False otherwise
- is_private() bool [source]¶
Return True if object is private
- Returns:
True if object is private, False otherwise
- Return type:
- select() None [source]¶
Select the object and eventually change its appearance to highlight the fact that it’s selected
- unselect() None [source]¶
Unselect the object and eventually restore its original appearance to highlight the fact that it’s not selected anymore
- hit_test(pos: QPointF) tuple[float, float, bool, None] [source]¶
Return a tuple (distance, attach point, inside, other_object)
- Parameters:
pos – Position
- Returns:
- Tuple with four elements: (distance, attach point, inside,
other_object).
- Return type:
Description of the returned values:
- distance: distance in pixels (canvas coordinates) to the closest
attach point
attach point: handle of the attach point
inside: True if the mouse button has been clicked inside the object
- other_object: if not None, reference of the object which will be
considered as hit instead of self
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams)[source]¶
Change the appearance of this item according to the parameter set provided
params is a list of Datasets of the same types as those returned by get_item_parameters
- move_local_point_to(handle: int, pos: QPointF, ctrl: bool = None) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_local_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in canvas coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- move_with_selection(delta_x: float, delta_y: float) None [source]¶
Translate the item together with other selected items
- Parameters:
delta_x – Translation in plot coordinates along x-axis
delta_y – Translation in plot coordinates along y-axis
- set_style(section: str, option: str) None [source]¶
Set style for this item
- Parameters:
section – Section
option – Option
- set_pos(x: float | None = None, y: float | None = None) None [source]¶
Set marker position
- Parameters:
x – X value (if None, use current value)
y – Y value (if None, use current value)
- set_markerstyle(style: str | int | None) None [source]¶
Set marker style
- Parameters:
style – Marker style
- is_horizontal() bool [source]¶
Is it a horizontal cursor?
- Returns:
True if this is a horizontal cursor
- class plotpy.items.RectangleSVGShape(x1: float = 0.0, y1: float = 0.0, x2: float = 0.0, y2: float = 0.0, svg_data: bytes | None = None, shapeparam: ShapeParam = None)[source]¶
Rectangle SVG shape
- Parameters:
x1 – X coordinate of the top-left corner
y1 – Y coordinate of the top-left corner
x2 – X coordinate of the bottom-right corner
y2 – Y coordinate of the bottom-right corner
svg_data – SVG bytes
shapeparam – Shape parameters
- draw(painter: QPainter, xMap: QwtScaleMap, yMap: QwtScaleMap, canvasRect: QRectF) None [source]¶
Draw shape (reimplement shape.Shape.draw))
- class plotpy.items.SquareSVGShape(x1: float = 0.0, y1: float = 0.0, x2: float = 0.0, y2: float = 0.0, svg_data: bytes | None = None, shapeparam: ShapeParam = None)[source]¶
Square SVG shape
- Parameters:
svg_data – SVG bytes
x1 – X coordinate of the top-left corner
y1 – Y coordinate of the top-left corner
x2 – X coordinate of the bottom-right corner
y2 – Y coordinate of the bottom-right corner
shapeparam – Shape parameters
- class plotpy.items.CircleSVGShape(x1: float = 0.0, y1: float = 0.0, x2: float = 0.0, y2: float = 0.0, svg_data: bytes | None = None, shapeparam: ShapeParam = None)[source]¶
Circle SVG shape
- Parameters:
x1 – X coordinate of the top-left corner
y1 – Y coordinate of the top-left corner
x2 – X coordinate of the bottom-right corner
y2 – Y coordinate of the bottom-right corner
svg_data – SVG bytes
shapeparam – Shape parameters
- draw(painter: QPainter, xMap: QwtScaleMap, yMap: QwtScaleMap, canvasRect: QRect) None [source]¶
Draw shape (reimplement shape.Shape.draw))
Annotations¶
- class plotpy.items.AnnotatedShape(annotationparam: AnnotationParam | None = None, info_callback: Callable[[AnnotatedShape], str] | None = None)[source]¶
Construct an annotated shape with properties set with annotationparam (see
styles.AnnotationParam
)- Parameters:
annotationparam – Annotation parameters
- SHAPE_CLASS¶
alias of
RectangleShape
- types() tuple[type[IItemType], ...] [source]¶
Returns a group or category for this item. This should be a tuple of class objects inheriting from IItemType
- Returns:
Tuple of class objects inheriting from IItemType
- Return type:
- serialize(writer: guidata.io.HDF5Writer | guidata.io.INIWriter | guidata.io.JSONWriter) None [source]¶
Serialize object to HDF5 writer
- Parameters:
writer – HDF5, INI or JSON writer
- deserialize(reader: guidata.io.HDF5Reader | guidata.io.INIReader | guidata.io.JSONReader) None [source]¶
Deserialize object from HDF5 reader
- Parameters:
reader – HDF5, INI or JSON reader
- set_style(section: str, option: str) None [source]¶
Set style for this item
- Parameters:
section – Section
option – Option
- draw(painter: QPainter, xMap: qwt.scale_map.QwtScaleMap, yMap: qwt.scale_map.QwtScaleMap, canvasRect: QRectF) None [source]¶
Draw the item
- Parameters:
painter – Painter
xMap – X axis scale map
yMap – Y axis scale map
canvasRect – Canvas rectangle
- create_label() DataInfoLabel [source]¶
Return the label object associated to this annotated shape object
- Returns:
Label object
- is_label_visible() bool [source]¶
Return True if associated label is visible
- Returns:
True if associated label is visible
- set_label_visible(state: bool) None [source]¶
Set the annotated shape’s label visibility
- Parameters:
state – True if label should be visible
- set_info_callback(callback: Callable[[AnnotatedShape], str]) None [source]¶
Set the callback function to get informations on current shape
- Parameters:
callback – Callback function to get informations on current shape
- get_text() str [source]¶
Return text associated to current shape (see
label.ObjectInfo
)- Returns:
Text associated to current shape
- x_to_str(x: float) str [source]¶
Convert x to a string (with associated unit and uncertainty)
- Parameters:
x – X value
- Returns:
Formatted string with x value
- Return type:
- y_to_str(y)[source]¶
Convert y to a string (with associated unit and uncertainty)
- Parameters:
y – Y value
- Returns:
Formatted string with x value
- Return type:
- get_infos() str [source]¶
Get informations on current shape
- Returns:
Formatted string with informations on current shape
- Return type:
- hit_test(pos: QPointF) tuple[float, float, bool, None] [source]¶
Return a tuple (distance, attach point, inside, other_object)
- Parameters:
pos – Position
- Returns:
- Tuple with four elements: (distance, attach point, inside,
other_object).
- Return type:
Description of the returned values:
- distance: distance in pixels (canvas coordinates) to the closest
attach point
attach point: handle of the attach point
inside: True if the mouse button has been clicked inside the object
- other_object: if not None, reference of the object which will be
considered as hit instead of self
- move_point_to(handle: int, pos: tuple[float, float], ctrl: bool = False) None [source]¶
Move a handle as returned by hit_test to the new position
- Parameters:
handle – Handle
pos – Position
ctrl – True if <Ctrl> button is being pressed, False otherwise
- move_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in axis coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- move_local_shape(old_pos: QPointF, new_pos: QPointF) None [source]¶
Translate the shape such that old_pos becomes new_pos in canvas coordinates
- Parameters:
old_pos – Old position
new_pos – New position
- move_with_selection(delta_x: float, delta_y: float) None [source]¶
Translate the item together with other selected items
- Parameters:
delta_x – Translation in plot coordinates along x-axis
delta_y – Translation in plot coordinates along y-axis
- select() None [source]¶
Select the object and eventually change its appearance to highlight the fact that it’s selected
- unselect() None [source]¶
Unselect the object and eventually restore its original appearance to highlight the fact that it’s not selected anymore
- get_item_parameters(itemparams: ItemParameters) None [source]¶
Appends datasets to the list of DataSets describing the parameters used to customize apearance of this item
- Parameters:
itemparams – Item parameters
- set_item_parameters(itemparams: ItemParameters) None [source]¶
Change the appearance of this item according to the parameter set provided
- Parameters:
itemparams – Item parameters
- class plotpy.items.AnnotatedPoint(x=0, y=0, annotationparam: AnnotationParam | None = None, info_callback: Callable[[AnnotatedShape], str] | None = None)[source]¶
Construct an annotated point at coordinates (x, y) with properties set with annotationparam (see
styles.AnnotationParam
)- SHAPE_CLASS¶
alias of
PointShape
- class plotpy.items.AnnotatedSegment(x1=0, y1=0, x2=0, y2=0, annotationparam: AnnotationParam | None = None, info_callback: Callable[[AnnotatedShape], str] | None = None)[source]¶
Construct an annotated segment between coordinates (x1, y1) and (x2, y2) with properties set with annotationparam (see
styles.AnnotationParam
)- SHAPE_CLASS¶
alias of
SegmentShape
- class plotpy.items.AnnotatedRectangle(x1=0, y1=0, x2=0, y2=0, annotationparam: AnnotationParam | None = None, info_callback: Callable[[AnnotatedShape], str] | None = None)[source]¶
Construct an annotated rectangle between coordinates (x1, y1) and (x2, y2) with properties set with annotationparam (see
styles.AnnotationParam
)- SHAPE_CLASS¶
alias of
RectangleShape
- set_rect(x1, y1, x2, y2)[source]¶
Set the coordinates of the shape’s top-left corner to (x1, y1), and of its bottom-right corner to (x2, y2).
- class plotpy.items.AnnotatedObliqueRectangle(x0=0, y0=0, x1=0, y1=0, x2=0, y2=0, x3=0, y3=0, annotationparam=None)[source]¶
Construct an annotated oblique rectangle between coordinates (x0, y0), (x1, y1), (x2, y2) and (x3, y3) with properties set with annotationparam (see
styles.AnnotationParam
)- SHAPE_CLASS¶
alias of
ObliqueRectangleShape
- get_tr_angle()[source]¶
Return X-diameter angle with horizontal direction, after applying transform matrix
- get_bounding_rect_coords() tuple[float, float, float, float] [source]¶
Return bounding rectangle coordinates (in plot coordinates)
- Returns:
Bounding rectangle coordinates (in plot coordinates)
- set_rect(x0, y0, x1, y1, x2, y2, x3, y3)[source]¶
Set the rectangle corners coordinates:
(x0, y0): top-left corner (x1, y1): top-right corner (x2, y2): bottom-right corner (x3, y3): bottom-left corner
x: additionnal points (x0, y0)------>(x1, y1) ↑ | | | x x | | | ↓ (x3, y3)<------(x2, y2)
- class plotpy.items.AnnotatedEllipse(x1=0, y1=0, x2=0, y2=0, annotationparam: AnnotationParam | None = None, info_callback: Callable[[AnnotatedShape], str] | None = None)[source]¶
Construct an annotated ellipse with X-axis diameter between coordinates (x1, y1) and (x2, y2) and properties set with annotationparam (see
styles.AnnotationParam
)- SHAPE_CLASS¶
alias of
EllipseShape
- set_xdiameter(x0, y0, x1, y1)[source]¶
Set the coordinates of the ellipse’s X-axis diameter Warning: transform matrix is not applied here
- get_xdiameter()[source]¶
Return the coordinates of the ellipse’s X-axis diameter Warning: transform matrix is not applied here
- set_ydiameter(x2, y2, x3, y3)[source]¶
Set the coordinates of the ellipse’s Y-axis diameter Warning: transform matrix is not applied here
- get_ydiameter()[source]¶
Return the coordinates of the ellipse’s Y-axis diameter Warning: transform matrix is not applied here