Skip to main content

autogpy - AutoGnuplot.py

Automatic generation of gnuplot figures/scripts/data from python.

Author: Alessandro Corbetta, 2019-2020
Documentation: https://acorbe.github.io/autogpy/
Examples Link
Github Link

PyPI build status DownloadsPyPI - Downloads

Which problem does it solve?

autogpy eliminates annoying duplications of code and data when employing python for data analysis and gnuplot for figures. Providing a gnuplot-like or a matplotlib-like syntax, autogpy automatically generates gnuplot scripts and dumps suitably the data.

Autogpy-Demo

Links: [Source] [Output]

Main features

  • anything that be obtained by the gnuplot command plot can be produced
  • output figures are shipped in a folder which includes scripts, data and makefile
  • any gnuplot state modification can be achieved
  • terminals epslatex, tikz/pgfplot and jpg
  • multiplots
  • plt.hist-like gnuplot histogram figures generator
  • jupyter notebook figure preview
  • jupyter notebook gnuplot script inspection
  • easy scp-based synchronization between a machine in which the figures are generated (e.g. from even larger datasets) and the "paper writing" machine.

Requirements

  • Linux/MacOs (could work on Windows, yet it has not been adjusted for)
  • Python 3
  • Working latex distribution
  • Gnuplot, optionally with tikz terminal
  • pdftoppm (via poppler-utils) or imagemagick to convert the output pdf figures in png format for jupyter notebook preview

Getting autogpy

Via pip

pip install autogpy

On Google Colab

!apt install gnuplot texlive poppler-utils ghostscript texlive-latex-extra
!pip install autogpy

From source

git clone git@github.com:acorbe/autogpy.git
pip install autogpy/

In a nutshell

Please see also the examples and the documentation.

import autogpy
import numpy as np

xx = np.linspace(0,6,100)
yy = np.sin(xx)
zz = np.cos(xx)

with autogpy.AutogpyFigure("test_figure") as figure: 

	# gnuplot-like syntax
	figure.plot(r'with lines t "sin"',xx,yy)
	
	# matplotlib-like syntax
	figure.plot(xx,zz,u='1:2',w='lines',label='cos')

generates the following figure (also appearing in jupyter)

example figure

Most importantly, the following source and data are created in the folder test_figure

$ ls test_figure

.gitignore
Makefile
sync_me.sh
fig__0__.dat
fig__1__.dat
fig__.core.gnu
fig__.jpg.gnu
fig__.pdflatex_compile.sh
fig__.pdflatex.gnu
fig__.tikz_compile.sh
fig__.tikz.gnu

With make one can obtain jpg, epslatex, and tikz/pgfplot versions of the figure. Notice that the input data has been formatted automatically and dumped in the .dat files.

Inspecting the fig__.pdflatex.gnu, responsible of the epslatex version of the figure, one gets:

set terminal epslatex size 9.9cm,8.cm color colortext standalone      'phv,12 '  linewidth 2
set output 'fig.latex.nice/plot_out.tex'

p "fig__0__.dat" with lines t "sin",\
"fig__1__.dat" u 1:2 with lines t "cos" 

KWONW ISSUES

  • Certain features require imagemagick and a working gnuplot-tikz.lua. Some versions of these might have bugs. Call figure.display_fixes() to show known fixes.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autogpy-0.3.2.tar.gz (22.4 kB view details)

Uploaded Source

File details

Details for the file autogpy-0.3.2.tar.gz.

File metadata

  • Download URL: autogpy-0.3.2.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for autogpy-0.3.2.tar.gz
Algorithm Hash digest
SHA256 e087be3d98c5aa16fcf8844b43289c335783bb47c41dd786c553c7ecb0dc5847
MD5 50f943834f5e3df8cac774581c1e6b48
BLAKE2b-256 035eea1a1e63c8fa68d2f9d560809a5ec71333b092ebea6bbc56b2e76ec6083a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.2 This release

1 file

0.3.1

1 file

0.3.0

1 file

0.2.1

1 file

0.2

1 file

0.1.4

1 file

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page