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
Validated, scalable, community developed variant calling, RNA-seq and small RNA analysis

Validated, scalable, community developed variant calling, RNA-seq and small RNA analysis. You write a high level configuration file specifying your in

Blue Collar Bioinformatics 915 Dec 29, 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
An interactive explorer for single-cell transcriptomics data

an interactive explorer for single-cell transcriptomics data cellxgene (pronounced "cell-by-gene") is an interactive data explorer for single-cell tra

Chan Zuckerberg Initiative 424 Dec 15, 2022
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
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
Statsmodels: statistical modeling and econometrics in Python

About statsmodels statsmodels is a Python package that provides a complement to scipy for statistical computations including descriptive statistics an

statsmodels 8.1k Dec 30, 2022
Efficient Python Tricks and Tools for Data Scientists

Why efficient Python? Because using Python more efficiently will make your code more readable and run more efficiently.

Khuyen Tran 944 Dec 28, 2022
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
collection of interesting Computer Science resources

collection of interesting Computer Science resources

Kirill Bobyrev 137 Dec 22, 2022
Open Delmic Microscope Software

Odemis Odemis (Open Delmic Microscope Software) is the open-source microscopy software of Delmic B.V. Odemis is used for controlling microscopes of De

Delmic 32 Dec 14, 2022
CoCalc: Collaborative Calculation in the Cloud

logo CoCalc Collaborative Calculation and Data Science CoCalc is a virtual online workspace for calculations, research, collaboration and authoring do

SageMath, Inc. 1k Dec 29, 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
Zipline, a Pythonic Algorithmic Trading Library

Zipline is a Pythonic algorithmic trading library. It is an event-driven system for backtesting. Zipline is currently used in production as the backte

Quantopian, Inc. 15.7k Jan 07, 2023
CS 506 - Computational Tools for Data Science

CS 506 - Computational Tools for Data Science Code, slides, and notes for Boston University CS506 Fall 2021 The Final Project Repository can be found

Lance Galletti 14 Mar 23, 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
ckan 3.6k Dec 27, 2022
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
Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code

A Python framework for creating reproducible, maintainable and modular data science code.

QuantumBlack Labs 7.9k Jan 01, 2023
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
Python Data Science Handbook: full text in Jupyter Notebooks

Python Data Science Handbook This repository contains the entire Python Data Science Handbook, in the form of (free!) Jupyter notebooks. How to Use th

Jake Vanderplas 36.9k Dec 28, 2022