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
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.4.tar.gz
(9.2 kB
view details)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 348d26a3142b7b565c3afef0b969c87e44042588a84d6e2178e30ca13dbc83f3 |
|
MD5 | fa11d8e6eb906fc14316f303d0a6c70f |
|
BLAKE2b-256 | aefc06626f5f1b063cebfb9fba2bcd2a5565e6ca271d552df5db9c952b724378 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a7679647a0dab1c2fd533198d0c22a97a367685a0e6ac89e88257b72786831f |
|
MD5 | cf4749b706e981b14b1a0f20d4d3959f |
|
BLAKE2b-256 | 4764100dae2a4b70030353debad26b60cb7980499502b50a1c18ed55e111feb5 |