Skip to main content

Tool to plot modality vector diagrams

Project description

DiaModality - The Modality Diagram

Simple tool to plot vector modality diagram

To install package run the command:

pip install diamodality

How to use:

See the /demo directory on Git repo or
create and run the following two files:


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.4.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

DiaModality-0.1.4-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for diamodality-0.1.4.tar.gz
Algorithm Hash digest
SHA256 348d26a3142b7b565c3afef0b969c87e44042588a84d6e2178e30ca13dbc83f3
MD5 fa11d8e6eb906fc14316f303d0a6c70f
BLAKE2b-256 aefc06626f5f1b063cebfb9fba2bcd2a5565e6ca271d552df5db9c952b724378

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for DiaModality-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8a7679647a0dab1c2fd533198d0c22a97a367685a0e6ac89e88257b72786831f
MD5 cf4749b706e981b14b1a0f20d4d3959f
BLAKE2b-256 4764100dae2a4b70030353debad26b60cb7980499502b50a1c18ed55e111feb5

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