Skip to main content

Plotter using .csv filesWritten by pedrohenriquecoimbra

Project description

Plotter Module

A Python module to generate plots from a CSV configuration file using seaborn. This module allows you to create custom plots by reading plot configurations directly from a CSV file and automatically generating the plots according to the specified settings.

Features

  • CSV-driven Plot Generation: Read plot configurations from a CSV file and generate plots accordingly.
  • Customizable Plot Settings: Control plot features such as axis labels, titles, themes, color palettes, and more.
  • Multiple Plot Sizes: Choose from predefined aspect ratios (small, medium, big, wide).
  • Save Plots: Optionally save plots as PNG, SVG, or PDF with custom resolutions.
  • Flexible Theme: Select from light or dark themes.
  • Seaborn-powered: Built on top of seaborn, making it easy to work with beautiful, statistical plots.

Installation

To use this module, you need Python 3.x and the following libraries:

  • seaborn
  • matplotlib
  • pandas

Install via pip:

pip install seaborn matplotlib pandas

Usage

1. Importing the Module:

from plotter import Plotter
import pandas as pd

2. Prepare Your Data:

Ensure you have a DataFrame ready with the data to plot. For example:

data = pd.DataFrame({
    'time': [1, 2, 3, 4, 5],
    'value': [10, 20, 15, 30, 25],
    'category': ['A', 'B', 'A', 'B', 'A']
})

3. Prepare Your Configuration CSV File:

Create a CSV file (plot_config.csv) with the following columns (or your own as needed):

x_var y_var x_label y_label hue style size theme palette aspect xlim ylim title
time value Time Value category light deep wide 0,35 0,40 Sample Plot 1
time value Time Value category dark pastel small 0,40 0,50 Sample Plot 2

4. Generate Plots from CSV:

Call the plot_from_csv function to read the configuration and generate plots:

plotter = Plotter(data)
plotter.plot_from_csv('plot_config.csv', data, save_folder="plots")

Parameters:

  • csv_file: Path to the CSV file containing plot configurations.
  • data: DataFrame containing the data to plot.
  • save_folder (optional): Folder where the plots will be saved. If not specified, plots will be shown without saving.
  • dpi (optional): Resolution for saving plots (default is 300).

5. Plot Customization:

You can customize the plot appearance in the CSV:

  • x_var and y_var: Column names for the X and Y axes.
  • x_label and y_label: Labels for the X and Y axes.
  • hue: Variable to use for color encoding.
  • style: Variable to use for line style.
  • size: Variable to use for size encoding.
  • theme: Select between 'light' or 'dark' for plot background theme.
  • palette: Choose color palette (e.g., 'deep', 'pastel', 'muted').
  • aspect: Set plot aspect ratio ('small', 'medium', 'big', 'wide').
  • xlim and ylim: Set axis limits as tuples.
  • title: Add a title to the plot.

6. Example Code:

import pandas as pd
from plotter import Plotter

# Sample Data
data = pd.DataFrame({
    'time': [1, 2, 3, 4, 5],
    'value': [10, 20, 15, 30, 25],
    'category': ['A', 'B', 'A', 'B', 'A']
})

# Create the Plotter instance
plotter = Plotter(data)

# Plot the configurations from the CSV file
plotter.plot_from_csv('plot_config.csv', data, save_folder="plots")

7. Saving the Plot:

If you specify a folder in save_folder, the plots will be saved with the name plot_1.png, plot_2.png, etc. You can also specify custom file formats (e.g., PNG, SVG) and DPI.

Example CSV (plot_config.csv):

x_var,y_var,x_label,y_label,hue,style,size,theme,palette,aspect,xlim,ylim,title
time,value,Time,Value,category,,medium,light,deep,wide,0,35,Sample Plot 1
time,value,Time,Value,category,,big,dark,pastel,small,0,40,Sample Plot 2

Advanced Usage

You can extend the Plotter class to include more specific functionalities such as:

  • Tooltips or zooming features (for future versions).
  • Error handling for missing data or invalid configurations.

Contributing

Feel free to open issues, create pull requests, or suggest improvements. This module is open for contributions and enhancements.


License

This project is licensed under the MIT License - see the LICENSE file for details.


You can modify and expand this template as your project evolves! It should give users a clear guide on how to get started with your module.

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

csvplotter-0.0.5.7.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

csvplotter-0.0.5.7-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file csvplotter-0.0.5.7.tar.gz.

File metadata

  • Download URL: csvplotter-0.0.5.7.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.12

File hashes

Hashes for csvplotter-0.0.5.7.tar.gz
Algorithm Hash digest
SHA256 93be000b6f49758356726be0523ae9d61b3f73a157b8a1d1517f0e9d644c86e7
MD5 acd2e36e47ce89a75e2f121221267717
BLAKE2b-256 95a302819b17b9898cbf5a9b604089d217dde3c513b640122862d7923c9b7dee

See more details on using hashes here.

File details

Details for the file csvplotter-0.0.5.7-py3-none-any.whl.

File metadata

  • Download URL: csvplotter-0.0.5.7-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.12

File hashes

Hashes for csvplotter-0.0.5.7-py3-none-any.whl
Algorithm Hash digest
SHA256 cd70b30e2b3d4cbcea3c721db7d71030f11667c14fde42079ceb99ac73c70f33
MD5 2ad797d1e09a2cc5d209d1cc41fff911
BLAKE2b-256 94f31ee0d000da8c49709f3767428861e83e5999fea690aecac47a8f3c073d17

See more details on using hashes here.

Supported by

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