dolfin

FEniCS/Dolfin support submodule.

Basic example:

import dolfin
from vedo.dolfin import datadir, plot

mesh = dolfin.Mesh(datadir+"dolfin_fine.xml")

plot(mesh)

dolfinmesh

Find many more examples in vedo/examples/dolfin

Latex

class vedo.dolfin.Latex(formula, pos=0, 0, 0, c='k', s=1, bg=None, alpha=1, res=30, usetex=False, fromweb=False)[source]

Bases: vedo.picture.Picture

Render Latex formulas.

Parameters
  • formula (str) – latex text string

  • pos (list) – position coordinates in space

  • c – face color

  • bg – background color box

  • res (int) – dpi resolution

  • usetex (bool) – use latex compiler of matplotlib

  • fromweb – retrieve the latex image from online server (codecogs)

You can access the latex formula in Latex.formula’.

latex.py latex.py

Plotter

class vedo.dolfin.Plotter(shape=1, 1, N=None, pos=0, 0, size='auto', screensize='auto', title='', bg='white', bg2=None, axes=None, sharecam=True, verbose=False, interactive=None, offscreen=False, qtWidget=None)[source]

Bases: object

Main class to manage actors.

Parameters
  • shape (list) – shape of the grid of renderers in format (rows, columns). Ignored if N is specified.

  • N (int) – number of desired renderers arranged in a grid automatically.

  • pos (list) – (x,y) position in pixels of top-left corner of the rendering window on the screen

  • size – size of the rendering window. If ‘auto’, guess it based on screensize.

  • screensize – physical size of the monitor screen

  • bg – background color or specify jpg image file name with path

  • bg2 – background color of a gradient towards the top

  • axes (int) –

    • 0, no axes

    • 1, draw three gray grid walls

    • 2, show cartesian axes from (0,0,0)

    • 3, show positive range of cartesian axes from (0,0,0)

    • 4, show a triad at bottom left

    • 5, show a cube at bottom left

    • 6, mark the corners of the bounding box

    • 7, draw a 3D ruler at each side of the cartesian axes

    • 8, show the vtkCubeAxesActor object

    • 9, show the bounding box outLine,

    • 10, show three circles representing the maximum bounding box,

    • 11, show a large grid on the x-y plane (use with zoom=8)

    • 12, show polar axes.

    • 13, draw a simple ruler at the bottom of the window

Axis type-1 can be fully customized by passing a dictionary axes=dict() where:

  • xtitle, [‘x’], x-axis title text.

  • xrange, [None], x-axis range in format (xmin, ymin), default is automatic.

  • numberOfDivisions, [automatic], number of divisions on the longest axis

  • axesLineWidth, [1], width of the axes lines

  • gridLineWidth, [1], width of the grid lines

  • reorientShortTitle, [True], titles shorter than 2 letter are placed horizontally

  • originMarkerSize, [0.01], draw a small cube on the axis where the origin is

  • enableLastLabel, [False], show last numeric label on axes

  • titleDepth, [0], extrusion fractional depth of title text

  • xyGrid, [True], show a gridded wall on plane xy

  • yzGrid, [True], show a gridded wall on plane yz

  • zxGrid, [True], show a gridded wall on plane zx

  • zxGrid2, [False], show zx plane on opposite side of the bounding box

  • xyGridTransparent [False], make grid plane completely transparent

  • xyGrid2Transparent [False], make grid plane completely transparent on opposite side box

  • xyPlaneColor, [‘gray’], color of the plane

  • xyGridColor, [‘gray’], grid line color

  • xyAlpha, [0.15], grid plane opacity

  • showTicks, [True], show major ticks

  • xTitlePosition, [0.32], title fractional positions along axis

  • xTitleOffset, [0.05], title fractional offset distance from axis line

  • xTitleJustify, [“top-right”], title justification

  • xTitleRotation, [0], add a rotation of the axis title

  • xLineColor, [automatic], color of the x-axis

  • xTitleColor, [automatic], color of the axis title

  • xTitleBackfaceColor, [None], color of axis title on its backface

  • xTitleSize, [0.025], size of the axis title

  • xHighlightZero, [True], draw a line highlighting zero position if in range

  • xHighlightZeroColor, [automatic], color of the line highlighting the zero position

  • xTickRadius, [0.005], radius of the major ticks

  • xTickThickness, [0.0025], thickness of the major ticks along their axis

  • xTickColor, [automatic], color of major ticks

  • xMinorTicks, [1], number of minor ticks between two major ticks

  • tipSize, [0.01], size of the arrow tip

  • xLabelPrecision, [2], nr. of significative digits to be shown

  • xLabelSize, [0.015], size of the numeric labels along axis

  • xLabelOffset, [0.025], offset of numeric labels

Parameters
  • sharecam (bool) – if False each renderer will have an independent vtkCamera

  • interactive (bool) – if True will stop after show() to allow interaction w/ window

  • offscreen (bool) – if True will not show the rendering window

  • qtWidget (QVTKRenderWindowInteractor) – render in a Qt-Widget using an QVTKRenderWindowInteractor. Overrides offscreen to True Overrides interactive to False See Also: example qt_windows1.py and qt_windows2.py

multiwindows

add(actors, render=True, at=None)[source]

Append input object to the internal list of actors to be shown.

Parameters
  • render (bool) – render the scene after adding the object

  • at (int) – add the object at the specified renderer

Returns

returns input actor for possible concatenation.

addButton(fnc, states='On', 'Off', c='w', 'w', bc='dg', 'dr', pos=20, 40, size=24, font='arial', bold=False, italic=False, alpha=1, angle=0)[source]

Add a button to the renderer window.

Parameters
  • states (list) – a list of possible states, e.g. [‘On’, ‘Off’]

  • c – a list of colors for each state

  • bc – a list of background colors for each state

  • pos – 2D position in pixels from left-bottom corner

  • size – size of button font

  • font (str) – font type (arial, courier, times)

  • bold (bool) – bold face (False)

  • italic (bool) – italic face (False)

  • alpha (float) – opacity level

  • angle (float) – anticlockwise rotation in degrees

buttons.py buttons.py

addCallback(eventName, func)[source]

Add a function to be executed while show() is active

addCutterTool(mesh)[source]

Create handles to cut away parts of a mesh.

cutter.py cutter.py

addGlobalAxes(axtype=None, c=None)[source]

Draw axes on scene. Available axes types:

Parameters

axtype (int) –

  • 0, no axes,

  • 1, draw three gray grid walls

  • 2, show cartesian axes from (0,0,0)

  • 3, show positive range of cartesian axes from (0,0,0)

  • 4, show a triad at bottom left

  • 5, show a cube at bottom left

  • 6, mark the corners of the bounding box

  • 7, draw a 3D ruler at each side of the cartesian axes

  • 8, show the vtkCubeAxesActor object

  • 9, show the bounding box outLine

  • 10, show three circles representing the maximum bounding box

  • 11, show a large grid on the x-y plane

  • 12, show polar axes

  • 13, draw a simple ruler at the bottom of the window

Axis type-1 can be fully customized by passing a dictionary axes=dict() where:

  • xtitle, [‘x’], x-axis title text

  • xrange, [None], x-axis range in format (xmin, ymin), default is automatic.

  • numberOfDivisions, [None], approximate number of divisions on the longest axis

  • axesLineWidth, [1], width of the axes lines

  • gridLineWidth, [1], width of the grid lines

  • reorientShortTitle, [True], titles shorter than 2 letter are placed horizontally

  • originMarkerSize, [0.01], draw a small cube on the axis where the origin is

  • titleDepth, [0], extrusion fractional depth of title text

  • xyGrid, [True], show a gridded wall on plane xy

  • yzGrid, [True], show a gridded wall on plane yz

  • zxGrid, [True], show a gridded wall on plane zx

  • zxGrid2, [False], show zx plane on opposite side of the bounding box

  • xyGridTransparent [False], make grid plane completely transparent

  • xyGrid2Transparent [False], make grid plane completely transparent on opposite side box

  • xyPlaneColor, [‘gray’], color of the plane

  • xyGridColor, [‘gray’], grid line color

  • xyAlpha, [0.15], grid plane opacity

  • xyFrameLine, [None], add a frame for the plane

  • showTicks, [True], show major ticks

  • xTitlePosition, [0.32], title fractional positions along axis

  • xTitleOffset, [0.05], title fractional offset distance from axis line

  • xTitleJustify, [“top-right”], title justification

  • xTitleRotation, [0], add a rotation of the axis title

  • xLineColor, [automatic], color of the x-axis

  • xTitleColor, [automatic], color of the axis title

  • xTitleBackfaceColor, [None], color of axis title on its backface

  • xTitleSize, [0.025], size of the axis title

  • ‘xTitleItalic’, [0], a bool or float to make the font italic

  • xHighlightZero, [True], draw a line highlighting zero position if in range

  • xHighlightZeroColor, [autom], color of the line highlighting the zero position

  • xTickLength, [0.005], radius of the major ticks

  • xTickThickness, [0.0025], thickness of the major ticks along their axis

  • xTickColor, [automatic], color of major ticks

  • xMinorTicks, [1], number of minor ticks between two major ticks

  • xPositionsAndLabels [], assign custom tick positions and labels [(pos1, label1), …]

  • xLabelPrecision, [2], nr. of significative digits to be shown

  • xLabelSize, [0.015], size of the numeric labels along axis

  • xLabelOffset, [0.025], offset of numeric labels

  • ‘xFlipText’. [False], flip axis title and numeric labels orientation

  • tipSize, [0.01], size of the arrow tip

  • limitRatio, [0.04], below this ratio don’t plot small axis

Example
from vedo import Box, show
b = Box(pos=(0,0,0), length=80, width=90, height=70).alpha(0)

show(b, axes={ 'xtitle':'Some long variable [a.u.]',
               'numberOfDivisions':4,
               # ...
             }
)

customAxes.py customAxes.py

addIcon(icon, pos=3, size=0.08)[source]

Add an inset icon mesh into the same renderer.

Parameters
  • pos – icon position in the range [1-4] indicating one of the 4 corners, or it can be a tuple (x,y) as a fraction of the renderer size.

  • size (float) – size of the square inset.

icon icon.py

addLegend()[source]
addLight(pos, focalPoint=0, 0, 0, deg=180, c='white', intensity=0.4, removeOthers=False, showsource=False)[source]

Generate a source of light placed at pos, directed to focal point. Returns a vtkLight object.

Parameters
  • focalPoint – focal point, if this is a vtkActor use its position.

  • deg – aperture angle of the light source

  • c – set light color

  • intensity (float) – intensity between 0 and 1.

  • removeOthers (bool) – remove all other lights in the scene

  • showsource (bool) – if True, will show a representation of the source of light as an extra Mesh

Hint

lights.py

addSlider2D(sliderfunc, xmin, xmax, value=None, pos=4, title='', font='arial', titleSize=1, c=None, showValue=True)[source]

Add a slider widget which can call an external custom function.

Parameters
  • sliderfunc – external function to be called by the widget

  • xmin (float) – lower value

  • xmax (float) – upper value

  • value (float) – current value

  • pos (list) – position corner number: horizontal [1-5] or vertical [11-15] it can also be specified by corners coordinates [(x1,y1), (x2,y2)]

  • title (str) – title text

  • titleSize (float) – title text scale [1.0]

  • font (str) – title font [arial, courier]

  • showValue (bool) – if true current value is shown

sliders1.py sliders1.py sliders2.py

addSlider3D(sliderfunc, pos1, pos2, xmin, xmax, value=None, s=0.03, t=1, title='', rotation=0, c=None, showValue=True)[source]

Add a 3D slider widget which can call an external custom function.

Parameters
  • sliderfunc – external function to be called by the widget

  • pos1 (list) – first position coordinates

  • pos2 (list) – second position coordinates

  • xmin (float) – lower value

  • xmax (float) – upper value

  • value (float) – initial value

  • s (float) – label scaling factor

  • t (float) – tube scaling factor

  • title (str) – title text

  • c – slider color

  • rotation (float) – title rotation around slider axis

  • showValue (bool) – if True current value is shown

sliders3d.py sliders3d.py

backgroundColor(c1=None, c2=None, at=None)[source]

Set the color of the background for the current renderer. A different renderer index can be specified by keyword at.

Parameters
  • c1 (list, optional) – background main color. The default is None.

  • c2 (list, optional) – background color for the upper part of the window. The default is None.

  • at (int, optional) – renderer index. The default is 0.

clear(actors=None)[source]

Delete specified list of actors, by default delete all.

close()[source]
closeWindow()[source]

Close the current or the input rendering window.

getMeshes(obj=None, renderer=None)[source]

Return a list of Meshes (which may include Volume objects too).

If obj is:

None, return meshes of current renderer

int, return meshes in given renderer number

vtkAssembly return the contained meshes

string, return meshes matching legend name

Parameters

renderer (int,vtkRenderer) – specify which renederer to look into.

getVolumes(obj=None, renderer=None)[source]

Return the list of the rendered Volumes.

If obj is:

None, return volumes of current renderer

int, return volumes in given renderer number

Parameters

renderer (int,vtkRenderer) – specify which renederer to look into.

load(filename, unpack=True, force=False)[source]

Load Mesh and Volume objects from file. The output will depend on the file extension. See examples below.

Parameters
  • unpack (bool) – only for multiblock data, if True returns a flat list of objects.

  • force (bool) – when downloading a file ignore any previous cached downloads and force a new one.

Example
from vedo import datadir, load, show

# Return a list of 2 Mesh
g = load([datadir+'250.vtk', datadir+'290.vtk'])
show(g)

# Return a list of meshes by reading all files in a directory
# (if directory contains DICOM files then a Volume is returned)
g = load('mydicomdir/')
show(g)

# Return a Volume. Color/Opacity transfer function can be specified too.
g = load(datadir+'embryo.slc')
g.c(['y','lb','w']).alpha((0.0, 0.4, 0.9, 1)).show()
moveCamera(camstart, camstop, fraction)[source]

Takes as input two vtkCamera objects and returns a new vtkCamera that is at an intermediate position:

fraction=0 -> camstart, fraction=1 -> camstop.

Press shift-C key in interactive mode to dump a python snipplet of parameters for the current camera view.

remove(actors, render=True)[source]

Remove vtkActor or actor index from current renderer.

render()[source]

Render the scene.

resetCamera()[source]

Reset the camera position and zooming.

screenshot(filename)[source]
show(*actors, **options)[source]

Render a list of actors.

Allowed input objects are: filename, vtkPolyData, vtkActor, vtkActor2D, vtkImageActor, vtkAssembly or vtkVolume.

If filename is given, its type is guessed based on its extension. Supported formats are: vtu, vts, vtp, ply, obj, stl, 3ds, xml, neutral, gmsh, pcd, xyz, txt, byu, tif, slc, vti, mhd, png, jpg.

Parameters
  • at (int) – number of the renderer to plot to, if more than one exists

  • shape (list) –

    Number of sub-render windows inside of the main window. Specify two across with shape=(2, 1) and a two by two grid with shape=(2, 2). By default there is only one renderer. Can also accept a shape as string descriptor. E.g.

    • shape=”3|1” means 3 plots on the left and 1 on the right,

    • shape=”4/2” means 4 plots on top of 2 at bottom.

  • axes (int) –

    set the type of axes to be shown

    • 0, no axes

    • 1, draw three customizable gray grid walls

    • 2, show cartesian axes from (0,0,0)

    • 3, show positive range of cartesian axes from (0,0,0)

    • 4, show a triad at bottom left

    • 5, show a cube at bottom left

    • 6, mark the corners of the bounding box

    • 7, draw a 3D ruler at each side of the cartesian axes

    • 8, show the vtkCubeAxesActor object

    • 9, show the bounding box outLine

    • 10, show three circles representing the maximum bounding box

    • 11, show a large grid on the x-y plane (use with zoom=8)

    • 12, show polar axes

    • 13, draw a simple ruler at the bottom of the window

  • azimuth/elevation/roll (float) – move camera accordingly

  • viewup (str) – either [‘x’, ‘y’, ‘z’] to set vertical direction

  • resetcam (bool) – re-adjust camera position to fit objects

  • camera (dict) –

    Camera parameters can further be specified with a dictionary assigned to the camera keyword (E.g. show(camera={‘pos’:(1,2,3), ‘thickness’:1000,}))

    • pos, (list), the position of the camera in world coordinates

    • focalPoint (list), the focal point of the camera in world coordinates

    • viewup (list), the view up direction vector for the camera

    • distance (float), set the focal point to the specified distance from the camera position.

    • clippingRange (float), distance of the near and far clipping planes along

      the direction of projection.

    • parallelScale (float),

      scaling used for a parallel projection, i.e. the height of the viewport in world-coordinate distances. The default is 1. Note that the “scale” parameter works as an “inverse scale”, larger numbers produce smaller images. This method has no effect in perspective projection mode.

    • thickness (float),

      set the distance between clipping planes. This method adjusts the far clipping plane to be set a distance ‘thickness’ beyond the near clipping plane.

    • viewAngle (float),

      the camera view angle, which is the angular height of the camera view measured in degrees. The default angle is 30 degrees. This method has no effect in parallel projection mode. The formula for setting the angle up for perfect perspective viewing is: angle = 2*atan((h/2)/d) where h is the height of the RenderWindow (measured by holding a ruler up to your screen) and d is the distance from your eyes to the screen.

  • interactive (bool) – pause and interact with window (True) or continue execution (False)

  • rate (float) – maximum rate of show() in Hertz

  • interactorStyle (int) – set the type of interaction - 0 = TrackballCamera [default] - 1 = TrackballActor - 2 = JoystickCamera - 3 = JoystickActor - 4 = Flight - 5 = RubberBand2D - 6 = RubberBand3D - 7 = RubberBandZoom - 8 = Context - 9 = 3D -10 = Terrain -11 = Unicam

  • q (bool) – force program to quit after show() command returns.

showInset(*actors, **options)[source]

Add a draggable inset space into a renderer.

Parameters
  • pos – icon position in the range [1-4] indicating one of the 4 corners, or it can be a tuple (x,y) as a fraction of the renderer size.

  • size (float) – size of the square inset.

  • draggable (bool) – if True the subrenderer space can be dragged around.

inset.py inset.py

ProgressBar

class vedo.dolfin.ProgressBar(start, stop, step=1, c=None, bold=True, italic=False, title='', ETA=True, width=25, char='━', char_back='─')[source]

Bases: object

Class to print a progress bar with optional text message.

Example
import time
pb = ProgressBar(0,400, c='red')
for i in pb.range():
    time.sleep(.1)
    pb.print('some message')

progressbar

len()[source]

Return the number of steps.

print(txt='', counts=None, c=None)[source]

Print the progress bar and optional message.

range()[source]

Return the range iterator.

Text

class vedo.dolfin.Text(txt, pos=0, 0, 0, s=1, font='', hspacing=1.15, vspacing=2.15, depth=0, italic=False, justify='bottom-left', c=None, alpha=1)[source]

Bases: vedo.mesh.Mesh

Generate a 3D polygonal Mesh representing a text string.

Can render strings like 3.7 10^9 or H_2 O with subscripts and superscripts. Most Latex symbols are also supported (e.g. mu_lambda). Symbols ~ ^ _ are reserved modifiers:

use ~ to add a short space, 1/4 of the default empty space, use ^ and _ to start up/sub scripting, a space terminates their effect.

Parameters
  • pos (list) – position coordinates in 3D space

  • s (float) – size of text.

  • depth (float) – text thickness.

  • italic (bool,float) – italic font type (can be a signed float too).

  • justify (str) – text justification as centering of the bounding box (bottom-left, bottom-right, top-left, top-right, centered).

  • font (str) – available 3D-polygonized fonts are Bongas, Calco, Comae, Kanopus, Glasgo, LionelOfParis, Inversionz, LogoType, Normografo, Quikhand, SmartCouric, Theemim, VictorMono, VTK. Default is Normografo, which can be changed using settings.defaultFont

  • hspacing (float) – horizontal spacing of the font.

  • vspacing (float) – vertical spacing of the font for multiple lines text.

markpoint.py markpoint.py fonts.py captions.py

fontlist fonts3d caption.py

Text2D

vedo.dolfin.Text2D(txt, pos=3, s=1, c=None, alpha=0.15, bg=None, font='', justify='bottom-left', bold=False, italic=False)[source]

Returns a vtkActor2D representing 2D text.

Parameters
  • pos (list, int) –

    text is placed in one of the 8 positions:

    1, bottom-left 2, bottom-right 3, top-left 4, top-right 5, bottom-middle 6, middle-right 7, middle-left 8, top-middle

    If a pair (x,y) is passed as input the 2D text is place at that position in the coordinate system of the 2D screen (with the origin sitting at the bottom left).

  • s (float) – size of text.

  • bg – background color

  • alpha (float) – background opacity

  • justify (str) – text justification

  • font (str) –

    available fonts are

    • Biysk

    • Bongas

    • Calco

    • Comae

    • Glasgo

    • Inversionz

    • Kanopus

    • LionelOfParis

    • LogoType

    • Normografo

    • Quikhand

    • SmartCouric

    • Theemim

    • VictorMono

    A path to otf or ttf font-file can also be supplied as input.

Video

class vedo.dolfin.Video(name='movie.mp4', duration=None, fps=24, backend='ffmpeg')[source]

Bases: object

Class to generate a video from the specified rendering window. Program ffmpeg is used to create video from each generated frame. :param str name: name of the output file. :param int fps: set the number of frames per second. :param float duration: set the total duration of the video and recalculates fps accordingly. :param str ffmpeg: set path to ffmpeg program. Default value considers ffmpeg is in the path.

makeVideo.py makeVideo.py

action(elevation_range=0, 80, azimuth_range=0, 359, zoom=None, cam1=None, cam2=None)[source]

Automatic shooting of the video with rotation and elevation ranges.

Parameters
  • elevation_range (list) – initial and final elevation angles

  • azimuth_range (list) – initial and final azimuth angles

  • zoom (float) – initial zooming

  • cam12 – initial and final camera position, can be dictionary or a vtkCamera

addFrame()[source]

Add frame to current video.

close()[source]

Render the video and write to file.

pause(pause=0)[source]

Insert a pause, in seconds.

clear

vedo.dolfin.clear(actor=None)[source]

Clear specific actor or list of actors from the current rendering window.

closePlotter

vedo.dolfin.closePlotter()[source]

Close the current instance of Plotter and its rendering window.

closeWindow

vedo.dolfin.closeWindow(plotterInstance=None)[source]

Close the current or the input rendering window.

download

vedo.dolfin.download(url, force=False, verbose=True)[source]

Retrieve a file from a url, save it locally and return its path.

embedWindow

vedo.dolfin.embedWindow(backend='k3d', verbose=True)[source]

Use this function to control whether the rendering window is inside the jupyter notebook or as an independent external window

exportWindow

vedo.dolfin.exportWindow(fileoutput, binary=False)[source]

Exporter which writes out the renderered scene into an HTML, X3D or Numpy file.

export_x3d.py export_x3d.py

generated webpage

See also: FEniCS test webpage.

Note

the rendering window can also be exported to numpy file scene.npz by pressing E keyboard at any moment during visualization.

histogram

vedo.dolfin.histogram(*args, **kwargs)[source]

Histogramming for 1D and 2D data arrays.

For 1D arrays:

Parameters
  • bins (int) – number of bins.

  • vrange (list) – restrict the range of the histogram.

  • logscale (bool) – use logscale on y-axis.

  • fill (bool) – fill bars woth solid color c.

  • gap (float) – leave a small space btw bars.

  • outline (bool) – show outline of the bins.

  • errors (bool) – show error bars.

histo_1D.py histo_1D.py

If mode='polar' assume input is polar coordinate system (rho, theta):

Parameters
  • weights (list) – array of weights, of the same shape as the input. Each value only contributes its associated weight towards the bin count (instead of 1).

  • title (str) – histogram title

  • tsize (float) – title size

  • bins (int) – number of bins in phi

  • r1 (float) – inner radius

  • r2 (float) – outer radius

  • phigap (float) – gap angle btw 2 radial bars, in degrees

  • rgap (float) – gap factor along radius of numeric angle labels

  • lpos (float) – label gap factor along radius

  • lsize (float) – label size

  • c – color of the histogram bars, can be a list of length bins.

  • bc – color of the frame and labels

  • alpha – alpha of the frame

  • cmap (str) – color map name

  • deg (bool) – input array is in degrees

  • vmin (float) – minimum value of the radial axis

  • vmax (float) – maximum value of the radial axis

  • labels (list) – list of labels, must be of length bins

  • showDisc (bool) – show the outer ring axis

  • nrays (int) – draw this number of axis rays (continuous and dashed)

  • showLines (bool) – show lines to the origin

  • showAngles (bool) – show angular values

  • showErrors (bool) – show error bars

histo_polar.py histo_polar.py

For 2D arrays:

Input data formats [(x1,x2,..), (y1,y2,..)] or [(x1,y1), (x2,y2),..] are both valid.

Parameters
  • xtitle (str) – x axis title

  • ytitle (str) – y axis title

  • bins (list) – binning as (nx, ny)

  • vrange (list) – range in x and y in format [(xmin,xmax), (ymin,ymax)]

  • cmap (str) – color map name

  • lw (float) – line width of the binning

  • scalarbar (bool) – add a scalarbar

histo_2D.py histo_2D.py

If mode='hexbin', build a hexagonal histogram from a list of x and y values.

Parameters
  • xtitle (str) – x axis title

  • ytitle (str) – y axis title

  • bins (bool) – nr of bins for the smaller range in x or y.

  • vrange (list) – range in x and y in format [(xmin,xmax), (ymin,ymax)]

  • norm (float) – sets a scaling factor for the z axis (freq. axis).

  • fill (bool) – draw solid hexagons.

  • cmap (str) – color map name for elevation.

histo_hexagonal.py histo_hexagonal.py

If mode='spheric', build a histogram from list of theta and phi values.

Parameters
  • rmax (float) – maximum radial elevation of bin

  • res (int) – sphere resolution

  • cmap – color map name

  • lw (float) – line width of the bin edges

  • scalarbar (bool) – add a scalarbar to plot

histo_spheric.py histo_spheric.py

interactive

vedo.dolfin.interactive()[source]

Start the rendering window interaction mode.

load

vedo.dolfin.load(inputobj, unpack=True, force=False)[source]

Load Mesh, Volume and Picture objects from file or from the web.

The output will depend on the file extension. See examples below. Unzip on the fly, if it ends with .gz. Can load an object directly from a URL address.

Parameters
  • unpack (bool) – unpack MultiBlockData into a flat list of objects.

  • force (bool) – when downloading a file ignore any previous cached downloads and force a new one.

Examples
from vedo import datadir, load, show

# Return a Mesh object
g = load(datadir+'250.vtk')
show(g)

# Return a list of 2 meshes
g = load([datadir+'250.vtk', datadir+'270.vtk'])
show(g)

# Return a list of meshes by reading all files in a directory
# (if directory contains DICOM files then a Volume is returned)
g = load('mydicomdir/')
show(g)

# Return a Volume. Color/Opacity transfer functions can be specified later.
g = load(datadir+'embryo.slc')
g.c(['y','lb','w']).alpha((0.0, 0.4, 0.9, 1)).show()

# Download a file from a URL address and unzip it on the fly
g = load('https://vedo.embl.es/examples/panther.stl.gz')
show(g)

plot

vedo.dolfin.plot(*inputobj, **options)[source]

Plot the object(s) provided.

Input can be any combination of: Mesh, Volume, dolfin.Mesh, dolfin.MeshFunction, dolfin.Expression or dolfin.Function.

return

the current Plotter class instance.

param str mode

one or more of the following can be combined in any order

  • mesh/color, will plot the mesh, by default colored with a scalar if available

  • displacement show displaced mesh by solution

  • arrows, mesh displacements are plotted as scaled arrows.

  • lines, mesh displacements are plotted as scaled lines.

  • tensors, to be implemented

param bool add

add the input objects without clearing the already plotted ones

param float density

show only a subset of lines or arrows [0-1]

param bool wire[frame]

visualize mesh as wireframe [False]

param c[olor]

set mesh color [None]

param bool exterior

only show the outer surface of the mesh [False]

param float alpha

set object’s transparency [1]

param float lw

line width of the mesh (set to zero to hide mesh) [0.5]

param float ps

set point size of mesh vertices [None]

param float z

add a constant to z-coordinate (useful to show 2D slices as function of time)

param str legend

add a legend to the top-right of window [None]

param bool scalarbar

add a scalarbar to the window [‘vertical’]

param float vmin

set the minimum for the range of the scalar [None]

param float vmax

set the maximum for the range of the scalar [None]

param float scale

add a scaling factor to arrows and lines sizes [1]

param str cmap

choose a color map for scalars

param str shading

mesh shading [‘flat’, ‘phong’, ‘gouraud’]

param str text

add a gray text comment to the top-left of the window [None]

param dict isolines

dictionary of isolines properties

  • n, (int) - add this number of isolines to the mesh

  • c, - isoline color

  • lw, (float) - isoline width

  • z, (float) - add to the isoline z coordinate to make them more visible

param dict streamlines

dictionary of streamlines properties

  • probes, (list, None) - custom list of points to use as seeds

  • tol, (float) - tolerance to reduce the number of seed points used in mesh

  • lw, (float) - line width of the streamline

  • direction, (str) - direction of integration (‘forward’, ‘backward’ or ‘both’)

  • maxPropagation, (float) - max propagation of the streamline

  • scalarRange, (list) - scalar range of coloring

Parameters

warpZfactor (float) –

elevate z-axis by scalar value (useful for 2D geometries) :param float warpYfactor: elevate z-axis by scalar value (useful for 1D geometries)

param list scaleMeshFactors

rescale mesh by these factors [1,1,1]

param bool new

spawn a new instance of Plotter class, pops up a new window

param int at

renderer number to plot to

param list shape

subdvide window in (n,m) rows and columns

param int N

automatically subdvide window in N renderers

param list pos

(x,y) coordinates of the window position on screen

param size

window size (x,y)

param str title

window title

param bg

background color name of window

param bg2

second background color name to create a color gradient

param int style

choose a predefined style [0-4]

  • 0, vedo, style (blackboard background, rainbow color map)

  • 1, matplotlib, style (white background, viridis color map)

  • 2, paraview, style

  • 3, meshlab, style

  • 4, bw, black and white style.

param int axes

axes type number

  • 0, no axes,

  • 1, draw customizable grid axes (see below).

  • 2, show cartesian axes from (0,0,0)

  • 3, show positive range of cartesian axes from (0,0,0)

  • 4, show a triad at bottom left

  • 5, show a cube at bottom left

  • 6, mark the corners of the bounding box

  • 7, draw a simple ruler at the bottom of the window

  • 8, show the vtkCubeAxesActor object,

  • 9, show the bounding box outLine,

  • 10, show three circles representing the maximum bounding box,

  • 11, show a large grid on the x-y plane (use with zoom=8)

  • 12, show polar axes.

Axes type-1 can be fully customized by passing a dictionary axes=dict() where:

  • xtitle, [‘x’], x-axis title text

  • xrange, [None], x-axis range in format (xmin, ymin), default is automatic.

  • numberOfDivisions, [None], approximate number of divisions on the longest axis

  • axesLineWidth, [1], width of the axes lines

  • gridLineWidth, [1], width of the grid lines

  • reorientShortTitle, [True], titles shorter than 2 letter are placed horizontally

  • titleDepth, [0], extrusion fractional depth of title text

  • xyGrid, [True], show a gridded wall on plane xy

  • yzGrid, [True], show a gridded wall on plane yz

  • zxGrid, [True], show a gridded wall on plane zx

  • zxGrid2, [False], show zx plane on opposite side of the bounding box

  • xyGridTransparent [False], make grid plane completely transparent

  • xyGrid2Transparent [False], make grid plane completely transparent on opposite side box

  • xyPlaneColor, [‘gray’], color of the plane

  • xyGridColor, [‘gray’], grid line color

  • xyAlpha, [0.15], grid plane opacity

  • xyFrameLine, [None], add a frame for the plane

  • showTicks, [True], show major ticks

  • digits, [None], use this number of significant digits in scientific notation

  • titleFont, [‘’], font for axes titles

  • labelFont, [‘’], font for numeric labels

  • textScale, [1.0], global scaling factor for text elements (titles, labels)

  • xTitlePosition, [0.32], title fractional positions along axis

  • xTitleOffset, [0.05], title fractional offset distance from axis line

  • xTitleJustify, [“top-right”], title justification

  • xTitleRotation, [0], add a rotation of the axis title

  • xTitleBox, [False], add a box around title text

  • xLineColor, [automatic], color of the x-axis

  • xTitleColor, [automatic], color of the axis title

  • xTitleBackfaceColor, [None], color of axis title on its backface

  • xTitleSize, [0.025], size of the axis title

  • ’xTitleItalic’, [0], a bool or float to make the font italic

  • xHighlightZero, [True], draw a line highlighting zero position if in range

  • xHighlightZeroColor, [autom], color of the line highlighting the zero position

  • xTickLength, [0.005], radius of the major ticks

  • xTickThickness, [0.0025], thickness of the major ticks along their axis

  • xMinorTicks, [1], number of minor ticks between two major ticks

  • xValuesAndLabels [], assign custom tick positions and labels [(pos1, label1), …]

  • xLabelColor, [automatic], color of numeric labels and ticks

  • xLabelPrecision, [2], nr. of significative digits to be shown

  • xLabelSize, [0.015], size of the numeric labels along axis

  • ’xLabelRotation’, [0], rotate clockwise [1] or anticlockwise [-1] by 90 degrees

  • ’xFlipText’, [False], flip axis title and numeric labels orientation

  • xLabelOffset, [0.025], offset of numeric labels

  • tipSize, [0.01], size of the arrow tip

  • limitRatio, [0.04], below this ratio don’t plot small axis

param bool infinity

if True fugue point is set at infinity (no perspective effects)

param bool sharecam

if False each renderer will have an independent vtkCamera

param bool interactive

if True will stop after show() to allow interaction w/ window

param bool offscreen

if True will not show the rendering window

param float zoom

camera zooming factor

param viewup

camera view-up direction [‘x’,’y’,’z’, or a vector direction]

param float azimuth

add azimuth rotation of the scene, in degrees

param float elevation

add elevation rotation of the scene, in degrees

param float roll

add roll-type rotation of the scene, in degrees

param dict camera

Camera parameters can further be specified with a dictionary assigned to the camera keyword: (E.g. show(camera={‘pos’:(1,2,3), ‘thickness’:1000,}))

  • pos, (list),

    the position of the camera in world coordinates

  • focalPoint, (list),

    the focal point of the camera in world coordinates

  • viewup, (list),

    the view up direction for the camera

  • distance, (float),

    set the focal point to the specified distance from the camera position.

  • clippingRange, (float),

    distance of the near and far clipping planes along the direction of projection.

  • parallelScale, (float),

    scaling used for a parallel projection, i.e. the height of the viewport in world-coordinate distances. The default is 1. Note that the “scale” parameter works as an “inverse scale”, larger numbers produce smaller images. This method has no effect in perspective projection mode.

  • thickness, (float),

    set the distance between clipping planes. This method adjusts the far clipping plane to be set a distance ‘thickness’ beyond the near clipping plane.

  • viewAngle, (float),

    the camera view angle, which is the angular height of the camera view measured in degrees. The default angle is 30 degrees. This method has no effect in parallel projection mode. The formula for setting the angle up for perfect perspective viewing is: angle = 2*atan((h/2)/d) where h is the height of the RenderWindow (measured by holding a ruler up to your screen) and d is the distance from your eyes to the screen.

param int interactorStyle

change the style of muose interaction of the scene

param bool q

exit python session after returning.

printHistogram

vedo.dolfin.printHistogram(data, bins=10, height=10, logscale=False, minbin=0, horizontal=False, char='▉', c=None, bold=True, title='Histogram')[source]

Ascii histogram printing. Input can also be Volume or Mesh. Returns the raw data before binning (useful when passing vtk objects).

Parameters
  • bins (int) – number of histogram bins

  • height (int) – height of the histogram in character units

  • logscale (bool) – use logscale for frequencies

  • minbin (int) – ignore bins before minbin

  • horizontal (bool) – show histogram horizontally

  • char (bool) – character to be used

  • c (str,int) – ascii color

  • char – use boldface

  • title (str) – histogram title

Example
from vedo import printHistogram
import np as np
d = np.random.normal(size=1000)
data = printHistogram(d, c='blue', logscale=True, title='my scalars')
data = printHistogram(d, c=1, horizontal=1)
print(np.mean(data)) # data here is same as d

printhisto

printc

vedo.dolfin.printc(*strings, **keys)[source]

Print to terminal in color (any color!).

Parameters
  • c – foreground color name or (r,g,b)

  • bc – background color name or (r,g,b)

  • bold (bool) – boldface [True]

  • italic (bool) – italic [False]

  • blink (bool) – blinking text [False]

  • underline (bool) – underline text [False]

  • strike (bool) – strike through text [False]

  • dim (bool) – make text look dimmer [False]

  • invert (bool) – invert background and forward colors [False]

  • box – print a box with specified text character [‘’]

  • flush (bool) – flush buffer after printing [True]

  • end (str) – the end character to be printed [newline]

Example
from vedo.colors import printc
printc('anything', c='tomato', bold=False, end='' )
printc('anything', 455.5, vtkObject, c='lightblue')
printc(299792.48, c=4)

Hint

printc.py

colorprint.py

screenshot

vedo.dolfin.screenshot(filename='screenshot.png', scale=None, returnNumpy=False)[source]

Save a screenshot of the current rendering window.

Parameters
  • scale (int) – set image magnification

  • returnNumpy (bool) – return a numpy array of the image

show

vedo.dolfin.show(*actors, **options)[source]

Create on the fly an instance of class Plotter and show the object(s) provided.

Allowed input objects types are: str, Mesh, Volume, Picture, Assembly vtkPolyData, vtkActor, vtkActor2D, vtkImageActor, vtkAssembly or vtkVolume.

If filename is given, its type is guessed based on its extension. Supported formats are: vtu, vts, vtp, ply, obj, stl, 3ds, xml, neutral, gmsh, pcd, xyz, txt, byu, tif, slc, vti, mhd, png, jpg.

Parameters
  • at (int) – number of the renderer to plot to, if more than one exists

  • shape (list) –

    Number of sub-render windows inside of the main window. Specify two across with shape=(2, 1) and a two by two grid with shape=(2, 2). By default there is only one renderer. Can also accept a shape as string descriptor. E.g.:

    • shape=”3|1” means 3 plots on the left and 1 on the right,

    • shape=”4/2” means 4 plots on top of 2 at bottom.

  • axes (int) –

    set the type of axes to be shown

    • 0, no axes

    • 1, draw three gray grid walls

    • 2, show cartesian axes from (0,0,0)

    • 3, show positive range of cartesian axes from (0,0,0)

    • 4, show a triad at bottom left

    • 5, show a cube at bottom left

    • 6, mark the corners of the bounding box

    • 7, draw a 3D ruler at each side of the cartesian axes

    • 8, show the vtkCubeAxesActor object

    • 9, show the bounding box outLine

    • 10, show three circles representing the maximum bounding box

    • 11, show a large grid on the x-y plane (use with zoom=8)

    • 12, show polar axes

    • 13, draw a simple ruler at the bottom of the window

    Axis type-1 can be fully customized by passing a dictionary axes=dict() where:

    • xtitle, [‘x’], x-axis title text

    • xrange, [None], x-axis range in format (xmin, ymin), default is automatic.

    • numberOfDivisions, [None], approximate number of divisions on the longest axis

    • axesLineWidth, [1], width of the axes lines

    • gridLineWidth, [1], width of the grid lines

    • reorientShortTitle, [True], titles shorter than 2 letter are placed horizontally

    • titleDepth, [0], extrusion fractional depth of title text

    • xyGrid, [True], show a gridded wall on plane xy

    • yzGrid, [True], show a gridded wall on plane yz

    • zxGrid, [True], show a gridded wall on plane zx

    • zxGrid2, [False], show zx plane on opposite side of the bounding box

    • xyGridTransparent [False], make grid plane completely transparent

    • xyGrid2Transparent [False], make grid plane completely transparent on opposite side box

    • xyPlaneColor, [‘gray’], color of the plane

    • xyGridColor, [‘gray’], grid line color

    • xyAlpha, [0.15], grid plane opacity

    • xyFrameLine, [None], add a frame for the plane

    • showTicks, [True], show major ticks

    • digits, [None], use this number of significant digits in scientific notation

    • titleFont, [‘’], font for axes titles

    • labelFont, [‘’], font for numeric labels

    • textScale, [1.0], global scaling factor for text elements (titles, labels)

    • xTitlePosition, [0.32], title fractional positions along axis

    • xTitleOffset, [0.05], title fractional offset distance from axis line

    • xTitleJustify, [“top-right”], title justification

    • xTitleRotation, [0], add a rotation of the axis title

    • xTitleBox, [False], add a box around title text

    • xLineColor, [automatic], color of the x-axis

    • xTitleColor, [automatic], color of the axis title

    • xTitleBackfaceColor, [None], color of axis title on its backface

    • xTitleSize, [0.025], size of the axis title

    • ’xTitleItalic’, [0], a bool or float to make the font italic

    • xHighlightZero, [True], draw a line highlighting zero position if in range

    • xHighlightZeroColor, [autom], color of the line highlighting the zero position

    • xTickLength, [0.005], radius of the major ticks

    • xTickThickness, [0.0025], thickness of the major ticks along their axis

    • xMinorTicks, [1], number of minor ticks between two major ticks

    • xValuesAndLabels [], assign custom tick positions and labels [(pos1, label1), …]

    • xLabelColor, [automatic], color of numeric labels and ticks

    • xLabelPrecision, [2], nr. of significative digits to be shown

    • xLabelSize, [0.015], size of the numeric labels along axis

    • ’xLabelRotation’, [0], rotate clockwise [1] or anticlockwise [-1] by 90 degrees

    • ’xFlipText’, [False], flip axis title and numeric labels orientation

    • xLabelOffset, [0.025], offset of numeric labels

    • tipSize, [0.01], size of the arrow tip

    • limitRatio, [0.04], below this ratio don’t plot small axis

  • azimuth/elevation/roll (float) – move camera accordingly

  • viewup (str) – either [‘x’, ‘y’, ‘z’] or a vector to set vertical direction

  • resetcam (bool) – re-adjust camera position to fit objects

  • camera (dict) –

    Camera parameters can further be specified with a dictionary assigned to the camera keyword (E.g. show(camera={‘pos’:(1,2,3), ‘thickness’:1000,}))

    • pos, (list), the position of the camera in world coordinates

    • focalPoint (list), the focal point of the camera in world coordinates

    • viewup (list), the view up direction for the camera

    • distance (float), set the focal point to the specified distance from the camera position.

    • clippingRange (float), distance of the near and far clipping planes along the direction

      of projection.

    • parallelScale (float),

      scaling used for a parallel projection, i.e. the height of the viewport in world-coordinate distances. The default is 1. Note that the “scale” parameter works as an “inverse scale”, larger numbers produce smaller images. This method has no effect in perspective projection mode.

    • thickness (float),

      set the distance between clipping planes. This method adjusts the far clipping plane to be set a distance ‘thickness’ beyond the near clipping plane.

    • viewAngle (float),

      the camera view angle, which is the angular height of the camera view measured in degrees. The default angle is 30 degrees. This method has no effect in parallel projection mode. The formula for setting the angle up for perfect perspective viewing is: angle = 2*atan((h/2)/d) where h is the height of the RenderWindow (measured by holding a ruler up to your screen) and d is the distance from your eyes to the screen.

  • interactive (bool) – pause and interact with window (True) or continue execution (False)

  • rate (float) – maximum rate of show() in Hertz

  • interactorStyle (int) –

    set the type of interaction

    • 0 = TrackballCamera [default]

    • 1 = TrackballActor

    • 2 = JoystickCamera

    • 3 = JoystickActor

    • 4 = Flight

    • 5 = RubberBand2D

    • 6 = RubberBand3D

    • 7 = RubberBandZoom

    • 8 = Context

    • 9 = 3D

    -10 = Terrain -11 = Unicam

  • q (bool) – force program to quit after show() command returns.

  • new (bool) –

    if set to True, a call to show will instantiate a new Plotter object (a new window) instead of reusing the first created.

    See e.g.: readVolumeAsIsoSurface.py

Returns

the current Plotter class instance.

Note

With multiple renderers, keyword at can become a list, e.g.

from vedo import *
s = Sphere()
c = Cube()
p = Paraboloid()
show(s, c, at=[0, 1], shape=(3,1))
show(p, at=2, interactive=True)
#
# is equivalent to:
plt = Plotter(shape=(3,1))
s = Sphere()
c = Cube()
p = Paraboloid()
plt.show(s, at=0)
plt.show(p, at=1)
plt.show(c, at=2, interactive=True)