Package to make plots easily.
Project description
Pyfigure98
A python package to create plots and figures easily
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 indefault.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
Built Distribution
File details
Details for the file pyfigure98-1.1.1.tar.gz
.
File metadata
- Download URL: pyfigure98-1.1.1.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4fcf8038c434856c074286eaede448479b8e8ce8875e200e370b344a91b940e |
|
MD5 | 6bdfb97efbc75846d8e581e6c56f1b27 |
|
BLAKE2b-256 | c431c4f3ae41b4dd1b88c98b00b757e51545c3e041bc9c9c42186ea68a603dc0 |
File details
Details for the file pyfigure98-1.1.1-py3-none-any.whl
.
File metadata
- Download URL: pyfigure98-1.1.1-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7a43095d3be8718dab1f50f89745479600bf98ed4e53054561c5911d0ef2233 |
|
MD5 | d5ed47cc2f967959f054b4138a8aa31f |
|
BLAKE2b-256 | 75c68889b5a07251ebf12212d93b3d86d43a8a6d2525dd80789f1091d4cf38e3 |