Skip to main content

Tool to plot modality vector diagrams

Project description

DiaModality - The Modality Diagram

Simple tool to plot vector modality diagram

pypi_version PyPI - License Python

To install package run the command:

pip install diamodality

Example of use:

See the /demo directory on Git repo or
create and run the following two files:
(file names don't matter)


generate_sample_data.py:

import csv
import random
import os

num_rows = 1500
output_file = 'modality_data.csv'

# locate working directory
script_dir = os.path.dirname(os.path.realpath(__file__))
file_path = os.path.join(script_dir, output_file)

# Open a new CSV file to write the data
with open(file_path, mode='w', newline='') as file:
    writer = csv.writer(file)

    # Generate the data
    signal_treshold = 1.5
    for _ in range(num_rows):

        # generate data columns:
        col1 = random.uniform(0, 2.7)
        col2 = random.uniform(0, 3.3)
        col3 = random.uniform(0, 7.3)

        # generate binarization columns:
        col4 = 1 if col1 > signal_treshold else ''
        col5 = 1 if col2 > signal_treshold else ''
        col6 = 1 if col3 > signal_treshold else ''

        writer.writerow([col1, col2, col3, col4, col5, col6])

plot_sample_data.py:

import DiaModality.CsvParser as csv
import DiaModality.ModalityPlot as plt
import os

# input files:
files = ['modality_data.csv']

# Get full path
script_dir = os.path.dirname(os.path.realpath(__file__))

for file in files:

    # Get full path of input files
    file_path = os.path.join(script_dir, file)

    # Parse data from csv file
    new_csv = csv.LoadCsv(file_path)
    data, binarization = new_csv.ParseCsv(3, 3)

    # Make figure:
    plot = plt.ModalityPlot(
        data,
        binarization,
        modalities=['Set 1', 'Set 2', 'Set 3'],
        angles=[210, 90, 330],
        labels=False,
        scalecircle=0.5,           # Scale circle radius
        scalecircle_linestyle=':',
        scalecircle_linewidth=0.75,
        marker='',                 # vector endpoints marker
        linestyle='-',
        linewidth=0.5,
        alpha=0.5,
        same_scale=False,          # Draw all the subplots in the same scale
        full_center=True,          # Draw all vectors in the central subplot,
                                   # else draw trimodal vectors only
        whole_sum=True,            # Calculate all three modality vectors despite binarization
        figsize=(10, 10),
        title='Modality Diagram Example',
        colors=(
            'tab:green',   # Set 1 color
            'navy',        # Set 2 color
            'tab:red',     # Set 3 color
            '#1E88E5',     # Sets 1 & 2 intersection color
            '#FF9933',     # Sets 1 & 3 intersection color
            '#9900FF',     # Sets 2 & 3 intersection color
            'black',       # All sets   intersection color
        ),      
    )

    plot.save(file_path, type='png', transparent=False)
    plot.show()

Source page: https://github.com/konung-yaropolk/DiaModality

modality_data csv

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

diamodality-0.1.6.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

DiaModality-0.1.6-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file diamodality-0.1.6.tar.gz.

File metadata

  • Download URL: diamodality-0.1.6.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for diamodality-0.1.6.tar.gz
Algorithm Hash digest
SHA256 2359af3c0de814634c0d6ed2478122c5da2f5e8f290832524beadb79c092ab18
MD5 305986a9250875a6631067f8ec91e301
BLAKE2b-256 b5d7a0faf0746f82bde47a7734639238e744fe81501aeb04bbde584765b93a20

See more details on using hashes here.

File details

Details for the file DiaModality-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: DiaModality-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for DiaModality-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e79fc1bc9f493bee479fc9954c1de98926e16c95f4d72ee3c760639d119a23a5
MD5 83f8faaccb6a605f924ae62c695a39bc
BLAKE2b-256 9b22499dcb8d83d02ad95ee99941cf96d9bd7ec0eb36a79f14ffd0f7e964deed

See more details on using hashes here.

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