Engaging plots, made easy.

Easily turn your data into engaging visualizations. Powerful API for coders. Powerful app for everyone.

main.py
notebook.ipynb
main.rs
from plotapi import Chord

Chord(matrix, names).show()

Visualizations Terminus

# Pixels per percentage

Let's look at a percentage-based approach to handling data with very high values or many sources and targets.

For example, if we had a dataset that included values that were in the millions, Terminus may end up trying to process and display a million or more pixels on-screen simultaneously. The result would likely be crashing the tab or browser! Whilst that can be managed with the previously discussed pixel_batch_size and pixel_journey_duration, that approach will likely result in an animation that lasts too long.

Instead, we can start representing our data as a percentage. For example, we could represent $1$ with $10$, $100$, or $1000$ pixels.

Let's demonstrate this with a high-value dataset.

## Sample data

Let's import PlotAPI and load our sample data.

from plotapi import Terminus

links = [
{"source":"England", "target":"Germany", "value": 100000},
{"source":"England", "target":"France", "value": 300000},
{"source":"England", "target":"Spain", "value": 500000},
{"source":"England", "target":"Italy", "value": 400000},
{"source":"England", "target":"Japan", "value": 8000},

{"source":"Ireland", "target":"Germany", "value": 350000},
{"source":"Ireland", "target":"France", "value": 375000},
{"source":"Ireland", "target":"Spain", "value": 175000},
{"source":"Ireland", "target":"Italy", "value": 5000},
{"source":"Ireland", "target":"Japan", "value": 40000},
]


## Demonstration

We can see that we're working with a dataset that contains higher values than usual. Let's address this by setting percentage_by_source=True, which enables the percentage feature, and then pixels_per_percentage=100, which means we will be using $100$ pixels to represent a single percent of a value. This also means our stats panel will display a percentage rather than the raw value.

Terminus(links, stats_text_width=100, colors="cool",
percentage_by_source=True, pixels_per_percentage=100).show()

Previous
Terminus