Tulip GUI Python bindings
Project description
Module description
Graphs play an important role in many research areas, such as biology, microelectronics, social sciences, data mining, and computer science. Tulip (http://tulip.labri.fr) [1] [2] is an Information Visualization framework dedicated to the analysis and visualization of such relational data. Written in C++ the framework enables the development of algorithms, visual encodings, interaction techniques, data models, and domain-specific visualizations.
The Tulip GUI library is available to the Python community through the Tulip-Python bindings [3] allowing to create and manipulate Tulip views (typically Node Link diagrams) trough the tulipgui module. It has to be used with the tulip module dedicated to the creation, storage and manipulation of the graphs to visualize. The bindings have been developed using the SIP tool [4] from Riverbank Computed Limited, allowing to easily create quality Python bindings for any C/C++ library.
The main features provided by the bindings are the following ones:
creation of interactive Tulip visualizations (Adjacency Matrix, Geographic, Histogram, Node Link Diagram, Parallel Coordinates, Pixel Oriented, Scatter Plot, Self Organizing Map, Spreadsheet)
the ability to change the data source on opened visualizations
the possibilty to modify the rendering parameters for node link diagram visualizations
the ability to save visualization snapshots to image files on disk
Release notes
Some information regarding the Tulip-Python releases pushed on the Python Packaging Index:
5.1.0: based on Tulip 5.1.0 released on 07/11/2017
5.0.0: based on Tulip 5.0.0 released on 27/06/2017
4.10.0: based on Tulip 4.10.0 released on 08/12/2016
4.9.0 : based on Tulip 4.9.0 released on 08/07/2016
4.8.1 : based on Tulip 4.8.1 released on 16/02/2016
4.8.0 : Initial release based on Tulip 4.8
Example
The following script imports the tree structure of the file system directory of the Python standard library, applies colors to nodes according to degrees, computes a tree layout and quadratic Bézier shapes for edges. The imported graph and its visual encoding are then visualized by creating an interactive Node Link Diagram view. A window containing an OpenGL visualization of the graph will be created and displayed.
from tulip import tlp
from tulipgui import tlpgui
import os
# get the root directory of the Python Standard Libraries
pythonStdLibPath = os.path.dirname(os.__file__)
# call the 'File System Directory' import plugin from Tulip
# importing the tree structure of a file system
params = tlp.getDefaultPluginParameters('File System Directory')
params['directory color'] = tlp.Color.Blue
params['other color'] = tlp.Color.Red
params['directory'] = pythonStdLibPath
graph = tlp.importGraph('File System Directory', params)
# compute an anonymous graph double property that will store node degrees
degree = tlp.DoubleProperty(graph)
degreeParams = tlp.getDefaultPluginParameters('Degree')
graph.applyDoubleAlgorithm('Degree', degree, degreeParams)
# create a heat map color scale
heatMap = tlp.ColorScale([tlp.Color.Green, tlp.Color.Black, tlp.Color.Red])
# linearly map node degrees to colors using the 'Color Mapping' plugin from Tulip
# using the heat map color scale
colorMappingParams = tlp.getDefaultPluginParameters('Color Mapping', graph)
colorMappingParams['input property'] = degree
colorMappingParams['color scale'] = heatMap
graph.applyColorAlgorithm('Color Mapping', colorMappingParams)
# apply the 'Bubble Tree' graph layout plugin from Tulip
graph.applyLayoutAlgorithm('Bubble Tree')
# compute quadratic bezier shapes for edges
curveEdgeParams = tlp.getDefaultPluginParameters('Curve edges', graph)
curveEdgeParams['curve type'] = 'QuadraticDiscrete'
graph.applyAlgorithm('Curve edges', curveEdgeParams)
# create a node link diagram view of the graph,
# a window containing the Tulip OpenGL visualization
# will be created and displayed
nodeLinkView = tlpgui.createNodeLinkDiagramView(graph)
# set some rendering parameters for the graph
renderingParameters = nodeLinkView.getRenderingParameters()
renderingParameters.setViewArrow(True)
renderingParameters.setMinSizeOfLabel(8)
renderingParameters.setEdgeColorInterpolate(True)
nodeLinkView.setRenderingParameters(renderingParameters)
References
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for tulipgui_python-5.2.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2653de86321d0929b4a8c3e438373d7db312b30f206ed8b3fb31fd8263037b32 |
|
MD5 | 7beb4977ea7fd34893bc5bb9ac747ee9 |
|
BLAKE2b-256 | ec9c7c6a182360f8ce7ac33267a872e63f3f5a5fdf5fa0597ea29b456f31cf7d |
Hashes for tulipgui_python-5.2.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1e2125b2a0cdce2595030f57ea139dd15fe3ffef5be8dd3f4d622f486cafd90 |
|
MD5 | 69c215e51365cefa8926e7674b2e7997 |
|
BLAKE2b-256 | beb27405bdbd737b6664dc0e914861e9240b8e586d797ed1738f6f0c2dc53aba |
Hashes for tulipgui_python-5.2.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe952ba093c0406e43d7f2a16765bd7c3d4faa6f10a19aa7563e0f7142f86b2e |
|
MD5 | cb8e2db57764cd0805ab34cd74ffe37d |
|
BLAKE2b-256 | d5dcbb599edf8db1d321aa25d54d231a2b16a93ec1a77302fd7329835e85a329 |
Hashes for tulipgui_python-5.2.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cecd11d9e0f9257570806a70d6502814ef682480ec717e53d51aa94627b3174 |
|
MD5 | 205dc1f751c91edde9c9929d5e3de725 |
|
BLAKE2b-256 | d53416c0d54bdf031cd0f19449602f4ce8c3ff5302d8a84f0faabf25296aaa0f |
Hashes for tulipgui_python-5.2.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b5d9c7defb7210b9d5c921d90ec7e527d10fe5fa5d87eef4eaabae6a84abc8b |
|
MD5 | 29e0221da2b975f5c928742f27e525da |
|
BLAKE2b-256 | 417d6ca8bd8344ea0f307936f4be16f34de3d6ea5cd0219dd86102fc123d1504 |
Hashes for tulipgui_python-5.2.1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fe1487b8ae3f112d6030970265123ebe6a81be4fad07ca6379a00ea08c419a7 |
|
MD5 | c897b9e24ca0d1d38e93b93535b38e58 |
|
BLAKE2b-256 | a01b6f3b4a62fc9dd4ca640979b318d562ea63a233762a31777e09fdeecf288e |
Hashes for tulipgui_python-5.2.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6614ff8f9a668ac606e29b68b1f66817c62745affe1c5171a9e02289d68c633c |
|
MD5 | a83dcd3c820fa31762adaedbeb6045a8 |
|
BLAKE2b-256 | 5a4fe5fd2b0435e2b567a4b981652cf025bf2605421337f5952f5f92db2f1585 |
Hashes for tulipgui_python-5.2.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f19bfebd82f4d0f609acf73bce40e93caeae993b8656ae5283ff078eced178c |
|
MD5 | 44a8f009af7191dee94e60a831e7fc1c |
|
BLAKE2b-256 | d5d3d8413eb91fe253bc1e825fbd6364f14d72a386a19d75fd8c64e200efcdf4 |
Hashes for tulipgui_python-5.2.1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62a09b90597f6e19cc06c3b0c787f748994523eaa7fb49ce9279e034a1be1e11 |
|
MD5 | 22870ad64d0d12caaa113b97da381db1 |
|
BLAKE2b-256 | 5296affad8cee86a5c533979291b990daad0474a3e48449c1c1110adc77c08d2 |
Hashes for tulipgui_python-5.2.1-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bea216509677ad870189389293e4f1a63d9f7b6a612bf4218fc61acc0492ad87 |
|
MD5 | 0ee7ed404a1661a7f8f5c6639905222d |
|
BLAKE2b-256 | 82a093eed3410ba09c82974b7b56238c8b347ea44146ff257ba90ee01e26b724 |
Hashes for tulipgui_python-5.2.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9795b698a3b24fe85eccd46a7578410434dc3d2a019eaecbe2c37c0a57d9a076 |
|
MD5 | b7c643760927171ed204b0a92c0c905f |
|
BLAKE2b-256 | b986d434859d895b4400979193ee3b4370d46545b9ce60afb16962c51dd6bb77 |
Hashes for tulipgui_python-5.2.1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 687d150ea0818e10e116ad2a60bac9a13f1df5f665d7b88140b059ee5f54378e |
|
MD5 | 25e00e8a9966be7f2e742d60fead87c5 |
|
BLAKE2b-256 | d38b100da64bd9eaa2bbbf625c8bd9d1eb0b38a248bdc9ac5979a3ea96c6d65d |
Hashes for tulipgui_python-5.2.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2a7dbfe981117cd019ab3088a26d6343068b19013f65c0054e395abd1f1fdf2 |
|
MD5 | cc8bf3e6deeaceab5df223353d69f27b |
|
BLAKE2b-256 | 0e5013e800547128e25f72fbcc9e8cbf79163940762ed2eab676ba1c8d872ba2 |
Hashes for tulipgui_python-5.2.1-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 929c500a8dc3e3581d97098095fadd1b2f6558c44b22ee7944d0b8da319bfd28 |
|
MD5 | 27f5d41bc51b9f9b024e8bb1973ddf1e |
|
BLAKE2b-256 | ac6d9faf5410ed2975c75cbc4a8cab5d00e3e978287b2bb693aff8edce09bb35 |
Hashes for tulipgui_python-5.2.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f08ddc864c00d7b90b87029121b85483181ae298cc669696338e2401a918db73 |
|
MD5 | 0439f25828abc6e4dffb6a4329990e85 |
|
BLAKE2b-256 | 67ed70d023974f9e6593b966cb59dfc01409e163405780f230e372afb485eef5 |
Hashes for tulipgui_python-5.2.1-cp27-cp27m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c3e4bdb8b3d770510e3eca175ae7a8ba5f042f244153667a79779f75d11f293 |
|
MD5 | aeaf520fd8273bb2b79ee1bc296b97d9 |
|
BLAKE2b-256 | 239b2616c322c3932b0eda181e133fba1d4da61f5d341a4bb600ec9513012386 |