Skip to main content

Package to make plots easily.

Project description

Pyfigure98

A python package to create plots and figures easily

GitHub Release Date - Published_At GitHub commit activity (branch) GitHub issues

PyPI - Version PyPI - License

If you have ever tried to make figures in python, you may have faced the same issues that annoyed me: a lot of copy/pasting between projects, countless hours spent on the internet searching for how to change the size of this or that thing again ? and always searching for specific things like axes formated specifficaly for angles, logarithms, times, ...

With this project, no more hurdles.


Features

This project is based on matplotlib and contains many methods to facilitate the creation of complex figures. Here is a non-exaustive list of its functionalities:

  • Hability to put multiple charts on a single figure.
  • Hability to have more than one y-axis.
  • Hability to format the x-axis to measure time, angles and logarithmic scales.
  • Hability to format de y-axis to measure angles and logarithmic scales.
  • Automated and unified font sizes, defined in templates.
  • And many more !

Documentation

Installation

To install this package using pip, simply run

pip install pyfigure98

Usage

In order to use this package, create a new Figure object, and add a new figure to it:

    from pyfigure98 import Figure
    import numpy as np # Used later
    
    myNewFigure = Figure()
    myNewFigure.addFigure(template="default", rows=1, cols=1)

For more informations on how to use the template variable and how to modify templates, see section.

Next, you can add a new chart to your newly-created figure:

chartOfMyNewFigure = myNewFigure.addchart("myChart")

Modify the x-axis and y-axis by using these methods:

chartOfMyNewFigure.setAxisX(x_min=-10, x_max=10, label="x")
chartOfMyNewFigure.setAxisY(y_min=-5, y_max=10, label="f(x)")

Add a plot by using:

x = np.arange(-10, 10, 0.2)
y = (0.3*x)**3
chartOfMyNewFigure.plotStandard(x=x, y=y, label="example with f(x)=0.3*x^3", color="red")

Don't forget to add a title and a legend !

myNewFigure.setTitle("My figure")
chartOfMyNewFigure.setTitle("my chart")
chartOfMyNewFigure.setLegend()

Finally, save you figure:

myNewFigure.figSave('myfig')

After all these steps, you should obtain this:

This example is, of course, trivial. But it illustrates the basic principles of this package.

Of course, there are many more methods available !

Templates

As explained before, the templates are responsible for the unified font sizes and colors (WIP) across different figures.

Usage

To use a template, simply specify the name of the name.json like in the usage example described here.

Add a custom template

Custom templates are supported as well. In order to create and use a custom template, proceed as follow:

from pyfigure98 import Figure

myNewFigure = Figure()

myNewFigure.addCustomTemplate("custom")  
myNewFigure.addFigure(template="custom", rows=1, cols=1)

Here, the custom template file used is custom.json. This file must be located in the same directory as the python script calling that function. So in this example, the structure is as followed:

├── myproject
│   ├── figurewithcustomtemplate.py
│   ├── custom.json

Write a custom template

The template needs to be a .json file with a specific structure.

Here you can see the default template file structure.
{
    "fig_size_x": 11,
    "fig_size_y": 8,
    "label_size": 25,
    "tick_size": 20,
    "legend_size": 20,
    "in_text_size": 20,
    "subplot_title_size": 30,
    "fig_title_size": 35,
    "markersize": 10,
    "tick_width_major": 2.25,
    "tick_length_major": 5,
    "tick_width_minor": 1.75,
    "tick_length_minor": 3   
}

Code inside default.json.

As you can see, each property has a corresponding value and represents a certain element in a plot. At the end of this section, a table will give you all the different properties and corresponding default values, as well as a description of what these values are used for.

If a property is not specified in the custom template.json, its value will be determined by the one defined in default.json. This way, you do not need to specify every properties in your custom file if you only want to change a few of them.

Here is an overview of all the different template variables and their default value.
Syntax Default value Description
"fig_size_x" 11
"fig_size_y" 8
"label_size" 25
"tick_size" 20
"legend_size" 20
"in_text_size" 20
"subplot_title_size" 30
"fig_title_size" 35
"markersize" 10
"tick_width_major" 2.25
"tick_length_major" 5
"tick_width_minor" 1.75
"tick_length_minor" 3

Examples


Project details


Download files

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

Source Distribution

pyfigure98-1.1.1.tar.gz (13.9 kB view hashes)

Uploaded Source

Built Distribution

pyfigure98-1.1.1-py3-none-any.whl (14.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page