EasyPlotting.jl

Graphical/statistical plotting GUI package for quick data visualisation and exploration.
Author srgk26
Popularity
3 Stars
Updated Last
2 Years Ago
Started In
April 2019

Build Status codecov Coverage Status GitHub latest release GitHub latest release Julia versions Code size Repo size Docker automatic build Docker cloud build

EasyPlotting.jl

Graphical/statistical plotting GUI package for quick data visualisation and exploration. NO CODING REQUIRED

This is a GUI that serves to ease the process of producing high quality plots normally produced by coding. This GUI takes care of the coding involved in the background while you need only input your data, select relevant options, and produce as many plots as you would like, all with just a few clicks.

This is a preview of the main page of the GUI:

Alt text

Kindly take note that this GUI is designed primarily for quick data exploratory purposes providing only the basic, fundamental user customisation options, though you are very welcome to include these plots in your publications as well should they be deemed satisfactory.

If anyone would like to contribute, please feel free to submit a pull request. If any issues, please also feel free to open an issue. If particular plotting types or custom options are requested to be added, please open an issue as well.


Format of data:

It is very important that your dataset is in accordance with the appropriate formats corresponding to the plot type. Click on the relevant links below for more on the formats, as well as relevant sample figures for how the plots would look like:

Note: The data used to generate these figures are randomly generated. Therefore they may not appear to be a typical plot resembling that based on a real dataset.

Files of type .xlsx/.csv/.txt(tab-delimited) extensions are supported.


Windows and macOS Usage (Linux users, see below):

  1. Download and install Julia from https://julialang.org/downloads/.
  2. Open the Julia app, copy and paste at the prompt:
using Pkg; if haskey(Pkg.installed(), "EasyPlotting") == false; Pkg.add(["PlotlyJS", "ORCA", "ImageMagick", "EasyPlotting"]); end ## Re-installing dependencies manually due to non-detection of these pkgs installed from Manifest.toml in path
using EasyPlotting; retry(EasyPlotting.easymain::Function, delays=ExponentialBackOff(n=5, first_delay=5, max_delay=10))() ## Retry function in case of an IOError when launching Blink

Press enter. If this is your first time using this package, it could take 20-30 min for the full installation process.

Kindly take note that pressing the 'Plot' button the first time may give an error. Kindly ignore the error message and try again, it will work from the second time.

If you have already installed this EasyPlotting.jl package, you may prefer to launch the GUI by copying and pasting this instead at the Julia prompt:

using EasyPlotting; retry(EasyPlotting.easymain::Function, delays=ExponentialBackOff(n=5, first_delay=5, max_delay=10))() 

Updating EasyPlotting.jl

There will be regular updates to this EasyPlotting.jl package. If you already have EasyPlotting installed in your system, simply copy and paste:

using Pkg; Pkg.update("EasyPlotting"); Pkg.build("EasyPlotting")

This fetches the latest updates into your local system. Then simply use the package as per normal.

Linux Usage:

This is the complete instructions for installing julia and setting up EasyPlotting.jl package for Julia-1.2.0 running Arch Linux using wayland as the display server protocol. Please adapt these instructions according to your specific linux distribution and setup. Detailed explanations of these instructions are also given below for your reference.

Complete Installation Instructions:

[srgk26@ArchLinux ~]$ wget https://julialang-s3.julialang.org/bin/linux/x64/1.2/julia-1.2.0-linux-x86_64.tar.gz ## Download Julia-1.2.0 into $HOME folder
[srgk26@ArchLinux ~]$ tar -xvzf julia-1.2.0-linux-x86_64.tar.gz && rm julia-1.2.0-linux-x86_64.tar.gz ## Extract Julia-1.2.0 and remove tarball
[srgk26@ArchLinux ~]$ sudo ln -s $HOME/julia-1.2.0/bin/julia /usr/local/bin/julia ## Create symbolic link of the julia binary into a folder in the system PATH
[srgk26@ArchLinux ~]$ sudo -- sh -c 'echo "export QT_QPA_PLATFORM=wayland" >> /etc/environment && source /etc/environment; pacman -S gtk3 python-pip; pip3 install seaborn' ## Combining the commands that require root privileges together
[srgk26@ArchLinux ~]$ echo 'backend: tkagg' >> $HOME/.config/matplotlib/matplotlibrc ## Set 'TkAgg' as matplotlib plotting backend
[srgk26@ArchLinux ~]$ julia ## Enter interactive julia REPL session
julia> using Pkg; if haskey(Pkg.installed(), "EasyPlotting") == false; Pkg.add(["PlotlyJS", "ORCA", "ImageMagick", "EasyPlotting"]); end ## Re-installing dependencies manually due to non-detection of these pkgs installed from Manifest.toml in path
       using EasyPlotting; retry(EasyPlotting.easymain::Function, delays=ExponentialBackOff(n=5, first_delay=5, max_delay=10))() ## Retry function in case of an IOError when launching Blink

Kindly take note that pressing the 'Plot' button the first time may give an error. Kindly ignore the error message and try again, it will work from the second time.

Detailed explanations step-by-step:

Linux users, please refrain from installing Julia with your respective package managers. Julia compiled from source using your package manager produces build error (for the 'Arpack' dependency) when building this EasyPlotting.jl package, which affects other downstream processes. Instead:

  1. Install the 'Generic Linux Binaries for x86' official package from https://julialang.org/downloads/.
  2. Create a symbolic link of the downloaded julia binary inside the /usr/local/bin folder. Assuming you have extracted the Tarballs into your home folder (i.e. $HOME), copy and paste in the terminal:
sudo ln -s $HOME/julia-1.2.0/bin/julia /usr/local/bin/julia

Replace 'julia-1.2.0' with the respective folder name. Click here for more information.

  1. If you are using wayland as your display server protocol (the output of echo $XDG_SESSION_TYPE at the bash shell will tell you if it is wayland or x11), you would also need to set the qt5 plotting backend environment to wayland. Type this on your bash shell to switch the qt5 plotting platform to wayland system-wide: sudo -- sh -c 'echo "export QT_QPA_PLATFORM=wayland" >> /etc/environment && source /etc/environment', or this to configure at user level: echo "export QT_QPA_PLATFORM=wayland" >> ~/.bash_profile && source ~/.bash_profile.

  2. If not already installed, you would also need to have a gtk3 package installed on your system with your respective package manager:

  • For Arch Linux based distributions, do sudo pacman -S gtk3.
  • For Debian based distributions, do sudo apt install libgtk-3-dev.
  • For Fedora and other yum based package managers, do sudo dnf install gtk3.
  • For RHEL/CentOS and other yum-based package managers, do sudo yum install gtk3.
  1. You would also need the python3 seaborn package, and the 'TkAgg' matplotlib backend installed. Firstly, if not already installed, install 'pip3' (the python3 package manager) and the 'TkAgg' backend using your package manager:
  • For Arch Linux based distributions, do sudo pacman -S python-pip.
  • For Debian based distributions, do sudo apt install python3-tk python3-pip.
  • For Fedora/RHEL/CentOS based distributions, do sudo dnf install python3-tkinter python3-pip.

To install seaborn, do either sudo pip3 install seaborn to install system-wide or python3 -m pip install --user seaborn to install at user level.

  1. You would need to set 'TkAgg' as the default matplotlib plotting backend with: echo 'backend: tkagg' >> $HOME/.config/matplotlib/matplotlibrc

  2. Then run Julia by simply typing julia in the terminal. Copy and paste the code below to install and launch EasyPlotting from within the Julia REPL prompt in the terminal:

using Pkg; if haskey(Pkg.installed(), "EasyPlotting") == false; Pkg.add(["PlotlyJS", "ORCA", "ImageMagick", "EasyPlotting"]); end ## Re-installing dependencies manually due to non-detection of these pkgs installed from Manifest.toml in path
using EasyPlotting; retry(EasyPlotting.easymain::Function, delays=ExponentialBackOff(n=5, first_delay=5, max_delay=10))() ## Retry function in case of an IOError when launching Blink

Kindly take note that pressing the 'Plot' button the first time may give an error. Kindly ignore the error message and try again, it will work from the second time.

If you have already installed this EasyPlotting.jl package, you may prefer to launch the GUI by copying and pasting this instead at the Julia prompt:

using EasyPlotting; retry(EasyPlotting.easymain::Function, delays=ExponentialBackOff(n=5, first_delay=5, max_delay=10))() 

Updating EasyPlotting.jl

There will be regular updates to this EasyPlotting.jl package. If you already have EasyPlotting installed in your system, simply copy and paste:

using Pkg; Pkg.update("EasyPlotting"); Pkg.build("EasyPlotting")

This fetches the latest updates into your local system. Then simply use the package as per normal.


For advanced users - Docker:

A docker image (repo name: srgk26/easyplotting) for every EasyPlotting.jl release is also provided here.


Credits:

Credits to the developers of the Julia language and libraries. Special thanks to Dustin T Irwin for his script on Stackoverflow, which helped greatly for the main structure of my code.