# silx.sx: Using silx from Python Interpreter¶

This is a convenient package to use from Python or IPython interpreter. It loads the main features of silx and provides high-level functions.

>>> from silx import sx


When used in an interpreter is sets-up Qt and loads some silx widgets. In a jupyter / IPython notebook, to set-up Qt and loads silx widgets, you must then call:

>>> sx.enable_gui()


When used in IPython, it also runs %pylab, thus importing numpy and matplotlib.

## Plot functions¶

The following functions plot curves and images with silx widgets:

The ginput() function handles user selection on those widgets.

Note

Those functions are not available from a notebook.

### plot()¶

plot(*args, **kwargs)[source]

Plot curves in a Plot1D widget.

How to use:

>>> from silx import sx
>>> import numpy


Plot a single curve given some values:

>>> values = numpy.random.random(100)
>>> plot_1curve = sx.plot(values, title='Random data')


Plot a single curve given the x and y values:

>>> angles = numpy.linspace(0, numpy.pi, 100)
>>> sin_a = numpy.sin(angles)
>>> plot_sinus = sx.plot(angles, sin_a, xlabel='angle (radian)', ylabel='sin(a)')


Plot many curves by giving a 2D array, provided xn, yn arrays:

>>> plot_curves = sx.plot(x0, y0, x1, y1, x2, y2, ...)


Plot curve with style giving a style string:

>>> plot_styled = sx.plot(x0, y0, 'ro-', x1, y1, 'b.')


Supported symbols:

• ‘o’ circle
• ‘.’ point
• ‘,’ pixel
• ‘+’ cross
• ‘x’ x-cross
• ‘d’ diamond
• ‘s’ square

Supported types of line:

• ‘ ‘ no line
• ‘-‘ solid line
• ‘–’ dashed line
• ‘-.’ dash-dot line
• ‘:’ dotted line

If provided, the names arguments color, linestyle, linewidth and marker override any style provided to a curve.

This function supports a subset of matplotlib.pyplot.plot arguments.

Parameters: color (str) – Color to use for all curves (default: None) linestyle (str) – Type of line to use for all curves (default: None) linewidth (float) – With of all the curves (default: 1) marker (str) – Symbol to use for all the curves (default: None) title (str) – The title of the Plot widget (default: None) xlabel (str) – The label of the X axis (default: None) ylabel (str) – The label of the Y axis (default: None) The widget plotting the curve(s) silx.gui.plot.Plot1D

### imshow()¶

imshow(data=None, cmap=None, norm='linear', vmin=None, vmax=None, aspect=False, origin='upper', scale=(1.0, 1.0), title='', xlabel='X', ylabel='Y')[source]

Plot an image in a Plot2D widget.

How to use:

>>> from silx import sx
>>> import numpy

>>> data = numpy.random.random(1024 * 1024).reshape(1024, 1024)
>>> plt = sx.imshow(data, title='Random data')


By default, the image origin is displayed in the upper left corner of the plot. To invert the Y axis, and place the image origin in the lower left corner of the plot, use the origin parameter:

>>> plt = sx.imshow(data, origin='lower')


This function supports a subset of matplotlib.pyplot.imshow arguments.

Parameters: data (numpy.ndarray-like with 2 dimensions) – data to plot as an image cmap (str) – The name of the colormap to use for the plot. It also supports a numpy array containing a RGB LUT, or a colors.Colormap instance. norm (str) – The normalization of the colormap: ‘linear’ (default) or ‘log’ vmin (float) – The value to use for the min of the colormap vmax (float) – The value to use for the max of the colormap aspect (bool) – True to keep aspect ratio (Default: False) origin (str or 2-tuple of floats) – Either image origin as the Y axis orientation: ‘upper’ (default) or ‘lower’ or the coordinates (ox, oy) of the image origin in the plot. scale (2-tuple of floats) – (sx, sy) The scale of the image in the plot (i.e., the size of the image’s pixel in plot coordinates) title (str) – The title of the Plot widget xlabel (str) – The label of the X axis ylabel (str) – The label of the Y axis The widget plotting the image silx.gui.plot.Plot2D

### scatter()¶

scatter(x=None, y=None, value=None, size=None, marker=None, cmap=None, norm='linear', vmin=None, vmax=None)[source]

Plot scattered data in a ScatterView widget.

How to use:

>>> from silx import sx
>>> import numpy

>>> x = numpy.random.random(100)
>>> y = numpy.random.random(100)
>>> values = numpy.random.random(100)
>>> plt = sx.scatter(x, y, values, cmap='viridis')


Supported symbols:

• ‘o’ circle
• ‘.’ point
• ‘,’ pixel
• ‘+’ cross
• ‘x’ x-cross
• ‘d’ diamond
• ‘s’ square

This function supports a subset of matplotlib.pyplot.scatter arguments.

Parameters: x (numpy.ndarray) – 1D array-like of x coordinates y (numpy.ndarray) – 1D array-like of y coordinates value (numpy.ndarray) – 1D array-like of data values size (float) – Size^2 of the markers marker (str) – Symbol used to represent the points cmap (str) – The name of the colormap to use for the plot norm (str) – The normalization of the colormap: ‘linear’ (default) or ‘log’ vmin (float) – The value to use for the min of the colormap vmax (float) – The value to use for the max of the colormap The widget plotting the scatter plot silx.gui.plot.ScatterView.ScatterView

### ginput()¶

ginput(n=1, timeout=30, plot=None)[source]

Get input points on a plot.

If no plot is provided, it uses a plot widget created with either silx.sx.plot() or silx.sx.imshow().

How to use:

>>> from silx import sx

>>> sx.imshow(image)  # Plot the image
>>> sx.ginput(1)  # Request selection on the image plot
((0.598, 1.234))


>>> positions = sx.ginput(1)

>>> positions[0].getData()  # Returns value(s) at selected position

>>> positions[0].getIndices()  # Returns data indices at selected position

>>> positions[0].getItem()  # Returns plot item at selected position

Parameters: n (int) – Number of points the user need to select timeout (float) – Timeout in seconds before ginput returns event if selection is not completed plot (silx.gui.plot.PlotWidget.PlotWidget) – An optional PlotWidget from which to get input List of clicked points coordinates (x, y) in plot ValueError – If provided plot is not a PlotWidget

## 3D plot functions¶

The following functions plot 3D data with silx widgets (it requires OpenGL):

Note

Those functions are not available from a notebook.

### contour3d()¶

contour3d(scalars, contours=1, copy=True, color=None, colormap='viridis', vmin=None, vmax=None, opacity=1.0)[source]

Plot isosurfaces of a 3D scalar field in a ScalarFieldView widget.

How to use:

>>> from silx import sx


Provided data, a 3D scalar field as a numpy array of float32:

>>> plot3d_window = sx.contour3d(data)


Alternatively you can provide the level of the isosurfaces:

>>> plot3d_window = sx.contour3d(data, contours=[0.2, 0.4])


This function provides a subset of mayavi.mlab.contour3d arguments.

Parameters: scalars (numpy.ndarray of float32 with 3 dimensions) – The 3D scalar field to visualize contours (Union[int, float, List[float]]) – Either the number of isosurfaces to draw (as an int) or the isosurface level (as a float) or a list of isosurface levels (as a list of float) copy (bool) – True (default) to make a copy of scalars. False to avoid this copy (do not modify provided data afterwards) color – Color.s to use for isosurfaces. Either a single color or a list of colors (one for each isosurface). A color can be defined by its name (as a str) or as RGB(A) as float or uint8. colormap (str) – If color is not provided, this colormap is used for coloring isosurfaces. vmin (Union[float, None]) – Minimum value of the colormap vmax (Union[float, None]) – Maximum value of the colormap opacity (float) – Transparency of the isosurfaces as a float in [0., 1.] The widget used to visualize the data ScalarFieldView

### points3d()¶

points3d(x, y, z=None, values=0.0, copy=True, colormap='viridis', vmin=None, vmax=None, mode=None)[source]

Plot a 3D scatter plot in a SceneWindow widget.

How to use:

>>> from silx import sx


Provided x, y, z, values, 4 numpy array of float32:

>>> plot3d_window = sx.points3d(x, y, z)

>>> plot3d_window = sx.points3d(x, y, z, values)


This function provides a subset of mayavi.mlab.points3d arguments.

Parameters: x (numpy.ndarray) – X coordinates of the points y (numpy.ndarray) – Y coordinates of the points z (numpy.ndarray) – Z coordinates of the points (optional) values (numpy.ndarray) – Values at each point (optional) copy (bool) – True (default) to make a copy of scalars. False to avoid this copy (do not modify provided data afterwards) colormap (str) – Colormap to use for coding points as colors. vmin (Union[float, None]) – Minimum value of the colormap vmax (Union[float, None]) – Maximum value of the colormap mode (str) – The type of marker to use Circle: ‘o’, ‘2dcircle’ Diamond: ‘d’, ‘2ddiamond’ Square: ‘s’, ‘2dsquare’ Plus: ‘+’ Cross: ‘x’, ‘2dcross’ Star: ‘*’ Vertical line: ‘|’ Horizontal line: ‘_’, ‘2ddash’ Point: ‘.’ Pixel: ‘,’ The widget used to visualize the data SceneWindow

## Widgets¶

The widgets of the silx.gui.plot package are also exposed in this package. See silx.gui.plot for documentation.

## Input/Output¶

The content of the silx.io package is also exposed in this package. See silx.io for documentation.

## Math¶

The following classes from silx.math are exposed in this package: