- To make a tool for simple yet clear visualizations of table format files, including: csv, xls, SQL-tables
- To be able to visualize selected cells with ability to reproduce the same code in other Python scripts
- To use the capabilities of various visual scientific Python libraries and to show how they can be combined together
- To be able to expand this project with custom types of visualizations
- Students
- Researchers
- Software Developers
- Open a file (csv, xlsx, SQL-table)
- Select some cells from a table
- Group these cells by context menu option (a new Graphics Menu Instance will be created)
- Choose a type of visualization (selected cells can be presented as 2D and 3D visualizations)
- Click "Create a new plot" button
Take a look at the ".github" folder for more different gifs / images of this tool.
Python 3.5 or newer.
A short list of used libraries:
- PyQt5
- Numpy
- Pandas
- xlrd
- psycopg2
- sqlalchemy
- Matplotlib
- pyqtgraph
- ...
A complete list of dependencies with versions is provided in the "requirements.txt" file.
-
Cross-platform desktop application: Windows / Linux / Mac
-
Easy-to-use: User-friendly Interface
-
Multilingual
-
Expandable
- All features were planned and implemented by me alone. That means there are areas which could be restructured/refactored/optimized.
A line for measuring the distance between two selected curves:
It was crucial to develop a movable line that would not disappear without a cursor in the scene. You can move the line and see the differences between the selected curves:
Windows 10:
Linux (Ubuntu 18.04, KDE Plasma):
The short answer would sound like:
- Interface: it is easy-to-use
- Code: DataVisualizer is an open-source Python-based project with self-explanatory code base
- Usability: this cross-platform tool provides files with additional explanations and examples
- Expandable parts: there are simple ways to expand types of visualizations by creating / adding Your own parts
The 1st type means that cells are stored as 1D array with one 2D array (1D and 1D meshgrid).
The 2nd type means that cells are stored as three 1D arrays. That is why 3D visualizations are not the same for the 1st and the 2nd types.
You can open "options" of each graphics instance to see the differences by Yourself within DataVisualizer. You can learn more about this in "help.txt", or right in the tool: Help -> Show help.
Yes, it is possible. You may use "PyQtWebEngine" for web-based visualizations.
Based on my research the combination of PyQt5 with pandas, numpy, matplotlib and pyqtgraph was the best choice to create a desktop cross-platform app from scratch within a reasonable time. Another reason was that this combination was not that hard to be able to cover every aspect of development without a team.
- Developed a complete software product
- Formed a habit to write code everyday
- Successfully defended thesis defence and was awarded a Bachelor's Degree certificate: Bachelor of Science in Computer Science.
- Skills and knowledge in PyQt5, Pyqtgraph, Matplotlib, Numpy, Pandas
- Git/Github overall experience
- UI/UX design skills
- Ability to be able to present the results in both Russian and English
- English and Russian fluency in technical terms
- Ability to plan short and long term goals
I worked on this particular project from December (2019) to May (2020). My private repo contains private comments, that is why I decided to make a new public repo. There is a screenshot of my old private project. To clarify: my initial nickname was "alexLAP7", but I decided to change it to "alexLX7".
All goals have been reached, there is no point for me to continue to work on it right now. So, unfortunatly, I'm not going to update this project.
Nevertheless, feel free to use and upgrade this tool. If You have any suggestions or corrections to make, please do not hesitate to let me know.
This project is based on PyQt5, therefore it is provided under GPL-3.0 License
Check the pip-licenses
to learn more about various dependencies:
Name License
PyQt5 GPL v3
SQLAlchemy MIT
matplotlib PSF
numpy BSD
pandas BSD
pyqtgraph MIT
xlrd BSD
...
The following steps assume using VS Code.
Open a terminal:
Create a virtual environment called 'venv':
python3 -m venv venv
Select 'venv' for the workspace folder by clicking 'Yes':
Activate Your 'venv' or simply open a new terminal in VS Code by clicking "Plus" symbol (near 'bash'), it will auto-activate it:
Install the requirements:
pip install -r requirements.txt
Run the code:
python3 main.py
-
Check out "/datavisualizer/resources/help/" to see a tutorial on how You can reproduce the same types of visualizations in Your own scripts. That file is also can be opened within DataVisualizer
-
Take a look at the ".github" folder for more different gifs / images of this tool