Skip to content

Commit d7fb92e

Browse files
committed
2 parents 9498377 + c7ffb04 commit d7fb92e

File tree

10 files changed

+270
-146
lines changed

10 files changed

+270
-146
lines changed

doc/images/panorama.png

6.35 KB
Loading

doc/images/panorama.svg

Lines changed: 130 additions & 130 deletions
Loading

doc/index.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@ Welcome to :mod:`plotpy`'s documentation!
88
features for interactive computing and signal/image processing application
99
development.
1010

11+
:mod:`plotpy` is part of the `PlotPyStack`_ project, which aims at providing
12+
a full set of Python libraries for data plotting and data analysis.
13+
1114
:mod:`plotpy` is based on:
1215

1316
* `Python`_ language and `Qt`_ GUI toolkit (via `PySide`_ or `PyQt`_)
14-
* `guidata`_ automatic GUI generation library
15-
* `PythonQwt`_ plotting widgets library
17+
* `guidata`_ automatic GUI generation library (`PlotPyStack`_ project)
18+
* `PythonQwt`_ plotting widgets library (`PlotPyStack`_ project)
1619
* `NumPy`_ and `SciPy`_ scientific computing libraries
1720

1821
.. figure:: images/panorama.png
@@ -34,6 +37,7 @@ External resources:
3437
.. _PythonQwt: https://pypi.python.org/pypi/PythonQwt
3538
.. _NumPy: https://pypi.python.org/pypi/NumPy
3639
.. _SciPy: https://pypi.python.org/pypi/SciPy
40+
.. _PlotPyStack: https://github.com/PlotPyStack
3741

3842
.. module:: plotpy
3943

doc/intro/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Getting started
66
:caption: Contents:
77

88
overview
9+
motivation
910
installation
1011
examples
1112
licenses

doc/intro/motivation.rst

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
.. _motivation:
2+
3+
Motivation
4+
==========
5+
6+
What are PlotPy V2 advantages over PlotPy V1?
7+
---------------------------------------------
8+
9+
From a developer point of view, PlotPy V2 is a major overhaul of PlotPy V1:
10+
11+
* Architecture has been redesigned to be more modular and extensible, and more simple.
12+
* Code quality has been improved introducing `black`, `isort` and typing annotations
13+
all over the codebase
14+
15+
.. note::
16+
PlotPy V2 is fully typed using Python 3.8+ type annotations.
17+
This means that you can use your IDE to get autocompletion and type checking
18+
(e.g. with VSCode, Visual Studio, etc.).
19+
This is a major improvement when you write code using PlotPy V2:
20+
you can rely on the type annotations to understand what a function does
21+
and what it returns, and your IDE can help you a lot with autocompletion
22+
and type checking.
23+
24+
To sum up, PlotPy V2 is a more modern and more maintainable codebase that will
25+
allow developers to create plotting applications even more easily than before.
26+
27+
From an end-user point of view, PlotPy V2 is also a significant improvement over
28+
PlotPy V1:
29+
30+
* PlotPy V2 is more stable and more robust thanks to the new `pytest`-based
31+
automated test suite, with a 70% code coverage.
32+
33+
* PlotPy V2 benefits from the backport of many bug fixes and improvements
34+
that were made in the guiqwt codebase since PlotPy V1 was released (i.e. from
35+
2016 to 2023).
36+
37+
* PlotPy V2 provides tons of new features (e.g. alpha function for better transparency
38+
control, refined contour plots, synchronized multiple plots, selection dialog boxes,
39+
SVG-based shapes, JSON de/serialization of plot items, new simple way to create
40+
plotting widgets with `PlotBuilder`, etc.)
41+
42+
* PlotPy V2 will be maintained and improved in the future, while PlotPy V1 is not
43+
maintained anymore. Some significant improvements are already planned for the
44+
next releases (e.g. enhanced color maps, new plot items, etc.)
45+
46+
What are PlotPy V2 advantages over guiqwt?
47+
------------------------------------------
48+
49+
Except from the backporting of bug fixes and improvements that were made in the
50+
guiqwt codebase since PlotPy V1 was released (i.e. from 2016 to 2023), PlotPy V2
51+
provides the same advantages over guiqwt as PlotPy V1: see previous section.

doc/intro/overview.rst

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,23 @@ Main features
55
-------------
66

77
:mod:`plotpy` is a Python module providing a set of high-level widgets and
8-
functions to ease plotting data with Python and Qt.
8+
functions to ease plotting data with Python and Qt. It can also be seen as a
9+
handy toolbox to develop custom scientific or technical data visualization
10+
applications using Python and Qt.
911

10-
:mod:`plotpy` is based on the following Python modules:
12+
:mod:`plotpy` is part of the `PlotPyStack`_ project, a software stack for
13+
scientific data visualization containing the following modules:
14+
15+
* :mod:`guidata`: a Python library generating graphical user interfaces
16+
(GUIs) for easy dataset editing and display. It also provides helpers and
17+
application development tools for creating Qt applications.
1118

1219
* :mod:`qwt` (PythonQwt): a Python reimplementation of the Qwt C++ library which
1320
provides a lot of plotting types and a flexible widget class
1421
(:py:class:`qwt.plot.QwtPlot`) which may be used to create custom plotting
1522
widgets.
1623

17-
* :mod:`guidata`: a Python library generating graphical user interfaces
18-
(GUIs) for easy dataset editing and display. It also provides helpers and
19-
application development tools for PyQt5.
24+
:mod:`plotpy` is also based on the following Python modules:
2025

2126
* :mod:`numpy`: a Python module providing efficient array manipulation
2227
facilities.
@@ -31,6 +36,23 @@ The :mod:`plotpy` library provides the following main features:
3136
* Interactive plotting tools
3237
* And more...
3338

39+
Advanced features
40+
-----------------
41+
42+
The :mod:`plotpy` library provides the following advanced features.
43+
44+
Curve plotting:
45+
46+
* Curve fitting tools
47+
* Interval selection tools for computing on selected area
48+
49+
Image plotting:
50+
51+
* Contrast adjustment panel
52+
* X-axis and Y-axis cross-sections
53+
* Powerful C++ image transform engine for real-time affine transform, interpolation
54+
(including antialiasing) or non-linear X and Y axes
55+
3456
Performance
3557
-----------
3658

@@ -101,3 +123,5 @@ The :mod:`plotpy` library provides the following features:
101123
- graphical objects (curves, images, shapes) serialization/deserialization
102124
to/from ``.ini``, ``.h5`` or ``.json`` files
103125
- a lot of test scripts (see :ref:`examples`)
126+
127+
.. _PlotPyStack: https://github.com/PlotPyStack

media/LinkedIn/2023_10_31-V2.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Announcement: Release of PlotPy V2 📊
2+
3+
PlotPy V2 distinguishes itself in the realm of plotting libraries. Designed for Python/Qt applications, this library offers a blend of superior performance and enhanced interactive features. Its image display features, driven by a C++ transform engine, include real-time high-quality interpolation, LUT, and geometric transformations, elevating data interaction.
4+
5+
PlotPy is part of the PlotPyStack project (<https://github.com/PlotPyStack>), dedicated to delivering a comprehensive toolkit for crafting scientific and technical data visualization applications.
6+
7+
The development efforts for PlotPy V2 were financed by the CEA (<https://www.cea.fr/>).
8+
9+
What's New in PlotPy V2 🌟:
10+
11+
🔍 Major Updates:
12+
13+
Refined and unified API for curve and image plotting features (widget, dialog, window). Introduction of a new window for synchronized multi-plot displays 🔄.
14+
15+
🎨 Enhancements:
16+
17+
Expanded Image Lookup Table functionalities.
18+
Integration of SVG-based shapes.
19+
20+
📖 Documentation:
21+
Comprehensive Sphinx-based documentation enriched with API links, examples, and tutorials.
22+
23+
⚙️ Development Features:
24+
Black code formatting, robust `pytest`-based automated test suite, and a 70% test coverage milestone ✅.
25+
26+
We invite the community to explore PlotPy V2's capabilities.
27+
28+
Explore PlotPy V2 on PyPI: <https://pypi.org/project/PlotPy/>.
29+
View the project on GitHub: <https://github.com/PlotPyStack/plotpy/>.
30+
Review the documentation: <https://plotpy.readthedocs.io/en/latest/>.

media/X/2023_10_31-V2.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
PlotPy V2 is now live! 🎉Introducing an optimized 2D curve/image plotting library📊.
2+
It's the successor to guiqwt. <https://pypi.org/project/PlotPy/>
3+
PlotPy is part of PlotPyStack, representing 15 years of expertise
4+
in Python-Qt scientific software development.
5+
#Python #Plotting

scripts/build_inplace.bat

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,20 @@ if exist MANIFEST ( del /q MANIFEST )
1717
:: (WinPython base directories)
1818
call %FUNC% GetPythonExeGrandParentDir DIR0
1919
for /D %%d in ("%DIR0%*") do (
20-
set WINPYDIRBASE=%%d
21-
call !WINPYDIRBASE!\scripts\env.bat
22-
echo ******************************************************************************
23-
echo Building %MODNAME% from "%%d"
24-
echo ******************************************************************************
25-
python setup.py build_ext --inplace
26-
echo ----
20+
:: Get the directory name without the path
21+
for %%n in (%%d) do set "DIRNAME=%%~nxn"
22+
23+
:: Check if the directory ends with "-PyQt6" or "-PySide6"
24+
if not "!DIRNAME:~-6!"=="-PyQt6" (
25+
if not "!DIRNAME:~-8!"=="-PySide6" (
26+
set WINPYDIRBASE=%%d
27+
call !WINPYDIRBASE!\scripts\env.bat
28+
echo ******************************************************************************
29+
echo Building %MODNAME% from "%%d"
30+
echo ******************************************************************************
31+
python setup.py build_ext --inplace
32+
echo ----
33+
)
34+
)
2735
)
2836
call %FUNC% EndOfScript

scripts/upgrade_env.bat

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ REM Licensed under the terms of the MIT License
77
REM Copyright (c) 2020 Pierre Raybaut
88
REM (see PythonQwt LICENSE file for more details)
99
REM ======================================================
10-
setlocal
10+
setlocal enabledelayedexpansion
1111
call %~dp0utils GetScriptPath SCRIPTPATH
1212
cd %SCRIPTPATH%\..
1313

@@ -18,7 +18,8 @@ for /D %%d in ("%DIR0%*") do (
1818
set WINPYDIRBASE=%%d
1919
call !WINPYDIRBASE!\scripts\env.bat
2020
echo Upgrading environment for "%%d":
21-
python -m pip install --upgrade -r dev\requirements.txt
21+
python -m pip install --upgrade pip
22+
python -m pip install --upgrade -r requirements.txt
2223
echo ----
2324
)
2425

0 commit comments

Comments
 (0)