Veusz scientific plotting application

Related tags

Scienceveusz
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
Veusz scientific plotting application

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 pl

Veusz 613 Dec 16, 2022
Wikidata scholarly profiles

Scholia is a python package and webapp for interaction with scholarly information in Wikidata. Webapp As a webapp, it currently runs from Wikimedia To

Finn Årup Nielsen 180 Dec 28, 2022
Doing bayesian data analysis - Python/PyMC3 versions of the programs described in Doing bayesian data analysis by John K. Kruschke

Doing_bayesian_data_analysis This repository contains the Python version of the R programs described in the great book Doing bayesian data analysis (f

Osvaldo Martin 851 Dec 27, 2022
AnuGA for the simulation of the shallow water equation

ANUGA Contents ANUGA What is ANUGA? Installation Documentation and Help Mailing Lists Web sites Latest source code Bug reports Developer information L

Geoscience Australia 147 Dec 14, 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 08, 2023
PsychoPy is an open-source package for creating experiments in behavioral science.

PsychoPy is an open-source package for creating experiments in behavioral science. It aims to provide a single package that is: precise enoug

PsychoPy 1.3k Dec 31, 2022
Algorithms covered in the Bioinformatics Course part of the Cambridge Computer Science Tripos

Bioinformatics This is a repository of all the algorithms covered in the Bioinformatics Course part of the Cambridge Computer Science Tripos Algorithm

16 Jun 30, 2022
SeqLike - flexible biological sequence objects in Python

SeqLike - flexible biological sequence objects in Python Introduction A single object API that makes working with biological sequences in Python more

186 Dec 23, 2022
A mathematica expression evaluator with PokemonTypes

A simple mathematical expression evaluator that uses Pokemon types to replace symbols.

Arnav Jindal 2 Nov 14, 2021
Animation engine for explanatory math videos

Manim is an engine for precise programatic animations, designed for creating explanatory math videos. Note, there are two versions of manim. This repo

Grant Sanderson 48.9k Jan 03, 2023
ckan 3.6k Dec 27, 2022
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
Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Aesara

PyMC3 is a Python package for Bayesian statistical modeling and Probabilistic Machine Learning focusing on advanced Markov chain Monte Carlo (MCMC) an

PyMC 7.2k Dec 30, 2022
Datamol is a python library to work with molecules

Datamol is a python library to work with molecules. It's a layer built on top of RDKit and aims to be as light as possible.

datamol 276 Dec 19, 2022
Read-only mirror of https://gitlab.gnome.org/GNOME/pybliographer

Pybliographer Pybliographer provides a framework for working with bibliographic databases. This software is licensed under the GPLv2. For more informa

GNOME Github Mirror 15 May 07, 2022
Mathics is a general-purpose computer algebra system (CAS). It is an open-source alternative to Mathematica

Mathics is a general-purpose computer algebra system (CAS). It is an open-source alternative to Mathematica. It is free both as in "free beer" and as in "freedom".

Mathics 535 Jan 04, 2023
Program that estimates antiderivatives utilising Maclaurin series.

AntiderivativeEstimator Program that estimates antiderivatives utilising Maclaurin series. Setup: Needs Python 3 and Git installed and added to PATH.

James Watson 3 Aug 04, 2021
Metaflow is a human-friendly Python/R library that helps scientists and engineers build and manage real-life data science projects

Metaflow Metaflow is a human-friendly Python/R library that helps scientists and engineers build and manage real-life data science projects. Metaflow

Netflix, Inc. 6.3k Jan 03, 2023
artisan: visual scope for coffee roasters

Artisan Visual scope for coffee roasters WARNING: pre-release builds may not work. Use at your own risk. Summary Artisan is a software that helps coff

Artisan – Visual Scope for Coffee Roasters 705 Jan 05, 2023
OPEM (Open Source PEM Fuel Cell Simulation Tool)

Table of contents What is PEM? Overview Installation Usage Executable Library Telegram Bot Try OPEM in Your Browser! MATLAB Issues & Bug Reports Contr

ECSIM 133 Jan 04, 2023