Veusz scientific plotting application

Related tags

Science veusz
Overview

Veusz 3.3.1

Veusz is a scientific plotting package. It is designed to produce publication-ready PDF or SVG output. Graphs are built-up by combining plotting widgets. The user interface aims to be simple, consistent and powerful.

Veusz provides GUI, Python module, command line, scripting, DBUS and SAMP interfaces to its plotting facilities. It also allows for manipulation and editing of datasets. Data can be captured from external sources such as Internet sockets or other programs.

Changes in 3.3.1

  • New tools for zooming into plot on click, zooming out, moving plot center and resetting plot axes
  • Double clicking on axis range resets endpoint to Auto
  • Add key entries for histo widget
  • MacOS improvements
    • Big Sur compatibility fix
    • Fix file associations
  • Python 3.10 prerelease fixes
  • Fix for reproducible builds

Changes in 3.3

  • New histogramming widget (histo)
  • Add keyboard shortcut for showing/hiding widgets (Ctrl+[ and Ctrl+])
  • New security model allows running arbitrary code for documents in allowed locations
  • Allow Python-level module imports
  • New separate lo and hi error bar styles (#428)
  • Use same colour for key title as key text (#414)
  • Add preferences for number of significant figures in picker
  • New colormaps: inferno, magma, moreland, parula, plasma and viridis
  • Add CurrentPath() API command to get current widget path
  • Add dataset operations for reversing and subtracting dataset maximum
  • Now supports building using sip5
  • Bugfix for values in boxplots (#455)
  • Add setting to optionally omit paths in document files
  • New flight-recorder and histogram examples
  • Make sure line around arrows is solid (#429)
  • README is now renamed to README.md
  • Switch to unsigned long long for widget IDs to fix build
  • Add multiline FieldTextEdit (#392) field
  • Windows binary now built only for 64 bit
  • MacOS binary now built for High Sierra (10.13) or later

Features of package:

Plotting features:

  • X-Y plots (with errorbars)
  • Line and function plots
  • Contour plots
  • Images (with colour mappings and colorbars)
  • Stepped plots (for histograms)
  • Bar graphs
  • Vector field plots
  • Box plots
  • Polar plots
  • Ternary plots
  • Plotting dates
  • Fitting functions to data
  • Stacked plots and arrays of plots
  • Nested plots
  • Plot keys
  • Plot labels
  • Shapes and arrows on plots
  • LaTeX-like formatting for text
  • Multiple axes
  • Axes with steps in axis scale (broken axes)
  • Axis scales using functional forms
  • Plotting functions of datasets
  • 3D point plots
  • 3D surface plots
  • 3D function plots
  • 3D volumetric plots

Input and output:

  • PDF/EPS/PNG/SVG/EMF export
  • Dataset creation/manipulation
  • Embed Veusz within other programs
  • Text, HDF5, CSV, FITS, NPY/NPZ, QDP, binary and user-plugin importing
  • Data can be captured from external sources

Extending:

  • Use as a Python module
  • User defined functions, constants and can import external Python functions
  • Plugin interface to allow user to write or load code to
    • import data using new formats
    • make new datasets, optionally linked to existing datasets
    • arbitrarily manipulate the document
  • Scripting interface
  • Control with DBUS and SAMP

Other features:

  • Data filtering and manipulation
  • Data picker
  • Interactive tutorial
  • Multithreaded rendering

Requirements for source install:

  • Python 3.x (3.3 or greater required)
  • Qt >= 5.5 (free edition)
  • PyQt >= 5.2 (Qt and SIP is required to be installed first)
  • SIP >= 4.15
  • Numpy >= 1.7

Optional requirements:

License

Veusz is Copyright (C) 2003-2020 Jeremy Sanders and contributors. It is licensed under the GPL version 2 or greater.

The latest source code can be found in this GitHub repository.

Comments
  • Alternatives to Bezier

    Alternatives to Bezier

    Hi. I really like Veusz. I am curious about how the smoothing seems to deliver some odd results at times. The attached image shows some lines drawn in Excel (top) and Veusz (bottom). I prefer Veusz over Excel almost always, but I think you can see that the smoothing here is Veusz is delivering some strange results. In particular, the big peak -- the line seems to go backwards, with the x value decreasing near (2015,0.125), which I think would be an arror in most circumstances. I cannot pretend to be able to offer a solution. If there is a sort of 'tension' parameter, that might help? Any advice welcome.

    2smooths

    opened by DJGoossens 18
  • --sip-dir isn't accepted, contratry to what the INSTALL file says

    --sip-dir isn't accepted, contratry to what the INSTALL file says

    Both configure and build phases fail with this option:

    error: option --sip-dir not recognized
    

    Setting the environment variable SIP_DIR also doesn't seem to have any effect.

    How to set the sip dir?

    On FreeBSD the sip directory is /usr/local/share/PyQt5/3.6/sip, and it can't find it by default.

    opened by yurivict 18
  • [Veusz 3.1] ValueError: PyCapsule_GetPointer called with incorrect name

    [Veusz 3.1] ValueError: PyCapsule_GetPointer called with incorrect name

    Hi,

    I just updated veusz to version 3.1 and veusz refused to start with the following error:

    Traceback (most recent call last):
      File "/usr/bin/veusz", line 11, in <module>
        load_entry_point('veusz==3.1', 'gui_scripts', 'veusz')()
      File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 480, in load_entry_point
        return get_distribution(dist).load_entry_point(group, name)
      File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2693, in load_entry_point
        return ep.load()
      File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2324, in load
        return self.resolve()
      File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2330, in resolve
        module = __import__(self.module_name, fromlist=['__name__'], level=0)
      File "/usr/lib/python3/dist-packages/veusz/veusz_main.py", line 32, in <module>
        from veusz import utils
      File "/usr/lib/python3/dist-packages/veusz/utils/__init__.py", line 22, in <module>
        from .textrender import Renderer, FontMetrics, latexEscape
      File "/usr/lib/python3/dist-packages/veusz/utils/textrender.py", line 30, in <module>
        from . import points
      File "/usr/lib/python3/dist-packages/veusz/utils/points.py", line 25, in <module>
        from ..helpers.qtloops import plotPathsToPainter
    ValueError: PyCapsule_GetPointer called with incorrect name
    

    I'm on Ubuntu 18.04.

    Thanks, Bao Bui

    opened by bvqbao 17
  • Move all hide checkboxes to top

    Move all hide checkboxes to top

    This PR is born out of a personal frustration: I often check the effect of a setting by hiding/unhiding the widget. For this to work effectively, the hide checkbox should always be at the same place and easily reachable. IMHO this best place is at the very top of the settings, but #92 has a different idea (at the bottom – but then you always have to scroll down to the bottom …)

    This PR implements this with the check box(es) always at the top. If the check box should be at the bottom, the method setting.settings.Settings.getNames() should be changed from

        def getNames(self):
            """Return list of names."""
            return self.hideboxnames + self.setnames
    

    to

        def getNames(self):
            """Return list of names."""
            return self.setnames + self.hideboxnames
    

    This could be even made a configuration option? But then I am not sure, if the reversal of

       def saveText(self, saveall, rootname = None):
    

    would still work, if the file is loaded with the checkboxes set to a different position …

    opened by sphh 16
  • Feature request: Add more functionality to

    Feature request: Add more functionality to "Zoom into graph"

    Currently, the "Zoom into graph" tool in the main window toolbar does exactly what it says - it lets you zoom into a chosen area in the graph. However, it also does exclusively what it says, meaning that once you've zoomed in you lack any interactive tools to pan the graph, zoom out, or reset to previous zoom steps. I feel that this is sorely missing.

    Basically, my suggestion is to implement a similar set of tools as we already have for zooming the entire page.

    opened by matheger 15
  • Cannot open file with unicode characters in path

    Cannot open file with unicode characters in path

    In ver. 2.x, there will be an error if the file path contains unicode characters:

    UnicodeDecodeError: 'mbcs' codec can't decode bytes in position 0--1: No mapping for the Unicode character exists in the target code page.

    But it works fine in ver. 1.x.

    opened by paiyuchen 14
  • Compilation error in Win32

    Compilation error in Win32

    Hello. I'm trying to compile Veusz 3.0.0 in Windows XP (32 bit), using Python 2.7.15, Qt 5.2.1, SIP 4.19.8 and PyQt5-5.10.1, and I get the following error:

    \veusz-veusz-3.0.1\veusz\helpers\src\threed\properties.h(106) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

    I've also tried with version 3.0.1, with the same results What could be causing this? Thank you.

    opened by Pertrecho 12
  • Cannot open files under directories with Korean characters in the path

    Cannot open files under directories with Korean characters in the path

    As shown in the title, switching to version 2.0, veusz cannot open files under directories with Korean characters in the path. It was fine for the past versions.

    opened by junemo9 12
  • veusz broken after upgrade to python 3.6

    veusz broken after upgrade to python 3.6

    I recently upgraded to fedora 26 and found that Veusz gives following error while trying to import data or open data editor or trying to export plot.

    ** ModuleNotFoundError: No module named 'DLFCN'**

    After searching online I found that python 3.6 has dropped module DLFCN, see https://docs.python.org/3.6/whatsnew/3.6.html

    opened by wasimiqbal 12
  • [bug] Exsiting plugins show import error at Veusz 3.4

    [bug] Exsiting plugins show import error at Veusz 3.4

    Existing plugins (Import, Tool, and Dataset), which work well until Veusz 3.3.1, do not work at Veusz 3.4.

    Typical structure is like below (example: https://github.com/korintje/SPAImportPlugin_for_Veusz/blob/main/spa_import.py):

    # This does not work
    
    from veusz.plugins import *
    
    class ImportPluginExample(ImportPlugin):
    
        def __init__(self):
        """some initialization porcess"""
    
        def doImport(self, params):
        """Actually import data"""
    
    importpluginregistry.append(ImportPluginExample)
    

    This type of plugin files raise an error message like below when selected:

    Traceback (most recent call last):
      File "veusz\dataimport\dialog_plugin.py", line 104, in pluginChanged
      File "veusz\dataimport\dialog_plugin.py", line 96, in getSelectedPlugin
      File "<string>", line 13, in __init__
    NameError: name 'ImportPlugin' is not defined
    
    Frame pluginChanged (File veusz\dataimport\dialog_plugin.py, line 104)
     self = <veusz.dataimport.dialog_plugin.ImportTabPlugins object at 0x0000019B0AB1D708>
      self.DrawChildren = 2
      self.DrawWindowBackground = 1
      self.IgnoreMask = 4
      self.PdmDepth = 6
      self.PdmDevicePixelRatio = 11
      self.PdmDevicePixelRatioScaled = 12
      self.PdmDpiX = 7
      self.PdmDpiY = 8
      self.PdmHeight = 2
      self.PdmHeightMM = 4
      self.PdmNumColors = 5
      self.PdmPhysicalDpiX = 9
      self.PdmPhysicalDpiY = 10
      self.PdmWidth = 1
      self.PdmWidthMM = 3
      self.__dict__ = {'dialog': <veusz.dialogs.importdialog.ImportDialog object at 0x0000019B0AB4A288>, 'uiloaded': True, 'promote': None, 'p...
      self.__doc__ = 'Tab for importing using a plugin.'
      self.__module__ = 'veusz.dataimport.dialog_plugin'
      self.dialog = <veusz.dialogs.importdialog.ImportDialog object at 0x0000019B0AB4A288>
      self.fields = [(<PyQt5.QtWidgets.QLabel object at 0x0000019B0708BEE8>, <PyQt5.QtWidgets.QLineEdit object at 0x0000019B0708BF78>), (<Py...
      self.filefilter = None
      self.filetypes = ()
      self.gridLayout_5 = <PyQt5.QtWidgets.QGridLayout object at 0x0000019B0AB175E8>
      self.groupBox_2 = <PyQt5.QtWidgets.QGroupBox object at 0x0000019B0AB17828>
      self.horizontalLayout = <PyQt5.QtWidgets.QHBoxLayout object at 0x0000019B0AB17A68>
      self.label_24 = <PyQt5.QtWidgets.QLabel object at 0x0000019B0AB179D8>
      self.pluginDescr = <PyQt5.QtWidgets.QLabel object at 0x0000019B0AB178B8>
      self.pluginParams = <PyQt5.QtWidgets.QGroupBox object at 0x0000019B0AB17678>
      self.pluginPreview = <PyQt5.QtWidgets.QTextEdit object at 0x0000019B0AB17708>
      self.pluginType = <PyQt5.QtWidgets.QComboBox object at 0x0000019B0AB17948>
      self.pluginchoicewidget = <PyQt5.QtWidgets.QWidget object at 0x0000019B0AB17AF8>
      self.plugininstance = <veusz.plugins.importplugin.ImportPluginExample object at 0x0000019B06AF0208>
      self.promote = None
      self.resource = 'import_plugins.ui'
      self.staticMetaObject = <PyQt5.QtCore.QMetaObject object at 0x0000019B06FCA358>
      self.uiloaded = True
      self.verticalLayout_7 = <PyQt5.QtWidgets.QVBoxLayout object at 0x0000019B0AB17798>
      self.verticalLayout_8 = <PyQt5.QtWidgets.QVBoxLayout object at 0x0000019B0AB1D318>
     index = 6
    
    Frame getSelectedPlugin (File veusz\dataimport\dialog_plugin.py, line 96)
     self = <veusz.dataimport.dialog_plugin.ImportTabPlugins object at 0x0000019B0AB1D708>
     selname = 'OMNIC SPA import'
     names = ['Numpy NPY import', 'Numpy NPZ import', 'QDP import', 'Binary import', 'Example plugin', 'Gnuplot 2D data import plugin...
     idx = 6
     p = <class 'veusz.document.doc.ImportSPA'>
    
    Frame __init__ (File <string>, line 13)
     self = <veusz.document.doc.ImportSPA object at 0x0000019B06ED5388>
      self.__dict__ = {}
      self.__doc__ = 'A plugin for reading Thermo Scientific OMNIC SPA file.'
      self.__module__ = 'veusz.document.doc'
      self.__weakref__ = None
      self.author = 'Takuro Hosomi'
      self.description = 'Read a spectrum from Thermo Scientific OMNIC SPA file'
      self.file_extensions = {'.SPA', '.spa'}
      self.name = 'OMNIC SPA import'
      self.promote_tab = None
    

    This behaviors were reproduced multiple OSs (Ubuntu, Windows, and MacOS) and also occurs with self-built program.

    I have found a work around. The files become to work well, by importing modules in each method instead of the global section. (example: https://github.com/korintje/SPAImportPlugin_for_Veusz/blob/main/spa_import_34.py).

    # This will work
    
    from veusz.plugins import ImportPlugin, importpluginregistry
    
    class ImportPluginExample(ImportPlugin):
    
        def __init__(self):
        from veusz.plugins import ImportPlugin
        """initialize"""
    
        def doImport(self, params):
        from veusz.plugins import ImportDataset1D
        """Actually import data"""
    
    importpluginregistry.append(ImportPluginExample)
    

    However, I think such behaviors are not intended. Such way becomes messy especially when users use some large classes. So I reported it as a bug.

    opened by korintje 11
  • Linux Ubuntu 16.04 Segmentation fault

    Linux Ubuntu 16.04 Segmentation fault

    When trying to launch Veusz on Ubuntu 16.04 it will not open, giving "Segmentation fault"

    Veusz latest version from official ppa.

    /Tomas Nilzon, Sweden

    opened by tnilzon 11
  • How to import the module scipy.interpolate into Veusz on Win10?

    How to import the module scipy.interpolate into Veusz on Win10?

    I installed the Veusz on Win10 using the Latest Windows binary (64 bit) (GPG/PGP signature), but I do not know how to import the python modules, e.g. scipy.interpolate? I tried Edit --> Custom definitions --> Imports --> Module: Scipy.interpolate & Symbol list: griddata. The console gives me red marks: Error evaluating...: name griddata is not defined.

    I also tried install the python on my Win 10 system and set the python path from the preferences -> External. It still doesn't work.

    Could someone have the same experience and help me solve this problem?

    opened by Qi0p 0
  • Zeroes in

    Zeroes in "Symm. errors" column cannot be overridden with Pos. or Neg. values.

    Hi,

    I created a barplot with initially given values in "Pos. errors" column. If I accidentally put any value in "Symm. errors" column, the column gets filled with zeroes which results in removing all existing positive error bars. Deleting the number in "Symm. errors" cell zeroes it, and the whole column becomes filled with zeroes which can't be removed.

    Ctrl+Z helps, but I think that there should be any other way.

    Thanks.

    opened by artrogachev 0
  • Cannot install Veusz 3.5.3 on Win 7Pro 64bit

    Cannot install Veusz 3.5.3 on Win 7Pro 64bit

    Hi, I cannot install Veusz 3.5.3 on Windows 7Pro 64 bit. After completing installation I get two error messages. Installation of 3.4 helps creating best illustrations ever, so, I hope that it would be possible to use the latest version. 2022-11-23_11-18-08 2022-11-23_11-23-42

    opened by artrogachev 2
  • I cannot install Veusz 3.5.3 on Ubuntu MATE 20.04.05.

    I cannot install Veusz 3.5.3 on Ubuntu MATE 20.04.05.

    Dear developer

    I cannot install Veusz 3.5.3 on Ubuntu MATE 20.04.05.

    It seems to be because it requires PyQt5 5.15.x where PyQt5 available for Python 3.8 on the system is 5.14.x.

    I installed PyQt5 5.15.2 from a 3rd party PPA, but "ValueError: PyCapsule_GetPointer called with incorrect name" and cannot start it.

    When I remove the PyQt5 3rd party PPA and put PyQt5 back in, Veusz is now 3.0, far past the 3.4 I had been using, and I cannot open the files I was using yesterday.

    opened by tsumutsumu7 1
  • Veusz does not open on Elementary OS

    Veusz does not open on Elementary OS

    when I tra to install veusz over the terminal this error mesage pops up:

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     veusz : Depends: python3-veusz (>= 3.5.3-0~ppa1~focal4) but it is not going to be installed
    E: Unable to correct problems, you have held broken packages.
    

    i can install it over the app store but when I click on the icon the start window just flashes and the application does not open.

    when I run the binary file it works badly the fonts are really strange and the plot aligment is not right and I got this mesage in the terminal:

    Qt: Session management error: None of the authentication protocols specified are supported
    QApplication: invalid style override 'adwaita' passed, ignoring it.
        Available styles: Windows, Fusion
    Fontconfig error: Cannot load default config file
    VO table import: astropy module not available
    SAMP: sampy module not available
    
    opened by hajrudin10 6
Releases(veusz-3.5.3)
Owner
Veusz
The Veusz Scientific Plotting Project
Veusz
SCICO is a Python package for solving the inverse problems that arise in scientific imaging applications.

Scientific Computational Imaging COde (SCICO) SCICO is a Python package for solving the inverse problems that arise in scientific imaging applications

Los Alamos National Laboratory 37 Dec 21, 2022
An open-source application for biological image analysis

CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure

CellProfiler 734 Jan 8, 2023
Tablexplore is an application for data analysis and plotting built in Python using the PySide2/Qt toolkit.

Tablexplore is an application for data analysis and plotting built in Python using the PySide2/Qt toolkit.

Damien Farrell 81 Dec 26, 2022
Official repository for Spyder - The Scientific Python Development Environment

Copyright © 2009–2021 Spyder Project Contributors Some source files and icons may be under other authorship/licenses; see NOTICE.txt. Project status B

Spyder IDE 7.3k Dec 31, 2022
Crab is a flexible, fast recommender engine for Python that integrates classic information filtering recommendation algorithms in the world of scientific Python packages (numpy, scipy, matplotlib).

Crab - A Recommendation Engine library for Python Crab is a flexible, fast recommender engine for Python that integrates classic information filtering r

python-recsys 1.2k Dec 21, 2022
Fast data visualization and GUI tools for scientific / engineering applications

PyQtGraph A pure-Python graphics library for PyQt5/PyQt6/PySide2/PySide6 Copyright 2020 Luke Campagnola, University of North Carolina at Chapel Hill h

pyqtgraph 3.1k Jan 8, 2023
Spyder - The Scientific Python Development Environment

Spyder is a powerful scientific environment written in Python, for Python, and designed by and for scientists, engineers and data analysts. It offers a unique combination of the advanced editing, analysis, debugging, and profiling functionality of a comprehensive development tool with the data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package.

Spyder IDE 7.3k Jan 8, 2023
Fast data visualization and GUI tools for scientific / engineering applications

PyQtGraph A pure-Python graphics library for PyQt5/PyQt6/PySide2/PySide6 Copyright 2020 Luke Campagnola, University of North Carolina at Chapel Hill h

pyqtgraph 2.3k Feb 13, 2021
A full spaCy pipeline and models for scientific/biomedical documents.

This repository contains custom pipes and models related to using spaCy for scientific documents. In particular, there is a custom tokenizer that adds

AI2 1.3k Jan 3, 2023
Fast data visualization and GUI tools for scientific / engineering applications

PyQtGraph A pure-Python graphics library for PyQt5/PyQt6/PySide2/PySide6 Copyright 2020 Luke Campagnola, University of North Carolina at Chapel Hill h

pyqtgraph 2.3k Feb 17, 2021
A full spaCy pipeline and models for scientific/biomedical documents.

This repository contains custom pipes and models related to using spaCy for scientific documents. In particular, there is a custom tokenizer that adds

AI2 831 Feb 17, 2021
3D visualization of scientific data in Python

Mayavi: 3D visualization of scientific data in Python Mayavi docs: http://docs.enthought.com/mayavi/mayavi/ TVTK docs: http://docs.enthought.com/mayav

Enthought, Inc. 1.1k Jan 6, 2023
xitorch: differentiable scientific computing library

xitorch is a PyTorch-based library of differentiable functions and functionals that can be widely used in scientific computing applications as well as deep learning.

null 24 Apr 15, 2021
SkipGNN: Predicting Molecular Interactions with Skip-Graph Networks (Scientific Reports)

SkipGNN: Predicting Molecular Interactions with Skip-Graph Networks Molecular interaction networks are powerful resources for the discovery. While dee

Kexin Huang 49 Oct 15, 2022
Python with the scientific stack, compiled to WebAssembly.

Pyodide may be used in any context where you want to run Python inside a web browser.

null 9.5k Jan 9, 2023
A scientific and useful toolbox, which contains practical and effective long-tail related tricks with extensive experimental results

Bag of tricks for long-tailed visual recognition with deep convolutional neural networks This repository is the official PyTorch implementation of AAA

Yong-Shun Zhang 181 Dec 28, 2022
Scientific color maps and standardization tools

Scicomap is a package that provides scientific color maps and tools to standardize your favourite color maps if you don't like the built-in ones. Scicomap currently provides sequential, bi-sequential, diverging, circular, qualitative and miscellaneous color maps. You can easily draw examples, compare the rendering, see how colorblind people will perceive the color maps. I will illustrate the scicomap capabilities below.

Thomas Bury 14 Nov 30, 2022
DRIFT is a tool for Diachronic Analysis of Scientific Literature.

About DRIFT is a tool for Diachronic Analysis of Scientific Literature. The application offers user-friendly and customizable utilities for two modes:

Rajaswa Patil 108 Dec 12, 2022
2nd solution of ICDAR 2021 Competition on Scientific Literature Parsing, Task B.

TableMASTER-mmocr Contents About The Project Method Description Dependency Getting Started Prerequisites Installation Usage Data preprocess Train Infe

Jianquan Ye 298 Dec 21, 2022
Official Pytorch implementation of ICLR 2018 paper Deep Learning for Physical Processes: Integrating Prior Scientific Knowledge.

Deep Learning for Physical Processes: Integrating Prior Scientific Knowledge: Official Pytorch implementation of ICLR 2018 paper Deep Learning for Phy

emmanuel 47 Nov 6, 2022