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
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
Project details
Release history Release notifications | RSS feed
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2359af3c0de814634c0d6ed2478122c5da2f5e8f290832524beadb79c092ab18 |
|
MD5 | 305986a9250875a6631067f8ec91e301 |
|
BLAKE2b-256 | b5d7a0faf0746f82bde47a7734639238e744fe81501aeb04bbde584765b93a20 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e79fc1bc9f493bee479fc9954c1de98926e16c95f4d72ee3c760639d119a23a5 |
|
MD5 | 83f8faaccb6a605f924ae62c695a39bc |
|
BLAKE2b-256 | 9b22499dcb8d83d02ad95ee99941cf96d9bd7ec0eb36a79f14ffd0f7e964deed |