- Get link
- X
- Other Apps
Quantifying Node-to-Node Relationships in Network Visualizations
A comprehensive SVG symbolization catalog and multi-metric implementation framework.
1 Edge/Link Attributes (The Connection Line)
The primary visual vector for mapping qualitative and quantitative metrics is the connecting line itself.
1.1 Variable Stroke-Width (Volume Scaling)
Directly maps scalar magnitude to the SVG stroke-width property.
<svg viewBox="0 0 600 200" width="100%" height="200" xmlns="http://www.w3.org/2000/svg">
<line x1="50" y1="50" x2="250" y2="50" stroke="#94a3b8" stroke-width="2" />
<text x="150" y="40" font-family="sans-serif" font-size="12" text-anchor="middle" fill="#64748b">Low Volume (w=2)</text>
<line x1="50" y1="130" x2="250" y2="130" stroke="#0284c7" stroke-width="14" stroke-linecap="round" />
<text x="150" y="115" font-family="sans-serif" font-size="12" text-anchor="middle" fill="#0369a1">High Volume (w=14)</text>
</svg>
1.2 Alpha Opacity & Dash Patterns (Confidence & Estimation)
Uses stroke-opacity for certainty scores and stroke-dasharray to differentiate measured vs. predicted values.
<svg viewBox="0 0 600 200" width="100%" height="200" xmlns="http://www.w3.org/2000/svg">
<line x1="50" y1="60" x2="300" y2="60" stroke="#16a34a" stroke-width="6" stroke-opacity="1.0" />
<text x="175" y="45" font-family="sans-serif" font-size="12" text-anchor="middle" fill="#15803d">Measured (p = 0.99)</text>
<line x1="50" y1="140" x2="300" y2="140" stroke="#dc2626" stroke-width="6" stroke-dasharray="8,6" stroke-opacity="0.4" />
<text x="175" y="125" font-family="sans-serif" font-size="12" text-anchor="middle" fill="#b91c1c">Predicted (p = 0.35)</text>
</svg>
1.3 Linear Gradient Encodings (Directional Affinity & Transition)
Uses a <linearGradient> definition mapped along the link coordinates to visualize bidirectional shifts in value or sentiment.
<svg viewBox="0 0 600 150" width="100%" height="150" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="affinityGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#2563eb" />
<stop offset="100%" stop-color="#ea580c" />
</linearGradient>
</defs>
<line x1="80" y1="75" x2="520" y2="75" stroke="url(#affinityGrad)" stroke-width="10" stroke-linecap="round" />
</svg>
1.4 Dual Offset Stroke Encodings (Parallel Bi-directional Rates)
Employs two parallel line paths offset vertically to display independent outbound vs. inbound quantitative rates between the same pair of nodes.
<svg viewBox="0 0 600 150" width="100%" height="150" xmlns="http://www.w3.org/2000/svg">
<path d="M 100,65 L 500,65" stroke="#2563eb" stroke-width="8" stroke-linecap="round" />
<text x="300" y="55" font-family="sans-serif" font-size="11" text-anchor="middle" fill="#1d4ed8">A → B: 120 Mbps</text>
<path d="M 500,85 L 100,85" stroke="#9333ea" stroke-width="3" stroke-linecap="round" />
<text x="300" y="105" font-family="sans-serif" font-size="11" text-anchor="middle" fill="#7e22ce">B → A: 35 Mbps</text>
</svg>
2 Numerical Labels & Inline Badges
2.1 Midpoint Floating Metric Pill
Renders a rounded rectangular container <rect> centered precisely over the link vector using SVG coordinate alignment.
<svg viewBox="0 0 600 150" width="100%" height="150" xmlns="http://www.w3.org/2000/svg">
<line x1="100" y1="75" x2="500" y2="75" stroke="#cbd5e1" stroke-width="4" />
<rect x="250" y="55" width="100" height="40" rx="8" fill="#0f172a" />
<text x="300" y="80" font-family="sans-serif" font-size="14" font-weight="bold" fill="#f8fafc" text-anchor="middle">w = 0.87</text>
</svg>
2.2 Marker Vector Arrowheads (Directed Magnitude Scale)
Leverages SVG <marker> definitions scaled dynamically via markerWidth and markerHeight to reflect directional flow severity.
<svg viewBox="0 0 600 150" width="100%" height="150" xmlns="http://www.w3.org/2000/svg">
<defs>
<marker id="heavyArrow" viewBox="0 0 10 10" refX="6" refY="5" markerWidth="12" markerHeight="12" orient="auto-start-reverse">
<path d="M 0 0 L 10 5 L 0 10 z" fill="#0284c7" />
</marker>
</defs>
<line x1="80" y1="75" x2="520" y2="75" stroke="#0284c7" stroke-width="6" marker-end="url(#heavyArrow)" />
<text x="300" y="60" font-family="sans-serif" font-size="12" fill="#0369a1" text-anchor="middle">Flow Rate: 450 units/hr</text>
</svg>
2.3 Multi-Metric Callout Stack
Displays multiple quantitative parameters simultaneously along the connection path using stacked SVG <tspan> elements inside a structured popover.
<svg viewBox="0 0 600 180" width="100%" height="180" xmlns="http://www.w3.org/2000/svg">
<line x1="80" y1="90" x2="520" y2="90" stroke="#64748b" stroke-width="3" />
<g transform="translate(230, 40)">
<rect width="140" height="65" rx="6" fill="#ffffff" stroke="#cbd5e1" stroke-width="2" />
<text x="12" y="22" font-family="sans-serif" font-size="11" font-weight="bold" fill="#1e293b">Latency: <tspan fill="#2563eb">12ms</tspan></text>
<text x="12" y="40" font-family="sans-serif" font-size="11" font-weight="bold" fill="#1e293b">Loss Rate: <tspan fill="#dc2626">0.02%</tspan></text>
<text x="12" y="58" font-family="sans-serif" font-size="11" font-weight="bold" fill="#1e293b">Cost Index: <tspan fill="#16a34a">$1.40</tspan></text>
</g>
</svg>
3 Directional Flow & Dynamic Indicators
3.1 CSS-Animated Dash Array (Live Traffic Velocity)
Employs stroke-dasharray alongside CSS animation on stroke-dashoffset to represent dynamic interaction speed.
<svg viewBox="0 0 600 150" width="100%" height="150" xmlns="http://www.w3.org/2000/svg">
<style>
.active-flow { stroke-dasharray: 12, 8; animation: flowAnimation 1s linear infinite; }
@keyframes flowAnimation { from { stroke-dashoffset: 40; } to { stroke-dashoffset: 0; } }
</style>
<line x1="80" y1="75" x2="520" y2="75" stroke="#e2e8f0" stroke-width="8" stroke-linecap="round" />
<line x1="80" y1="75" x2="520" y2="75" stroke="#2563eb" stroke-width="8" stroke-linecap="round" class="active-flow" />
</svg>
3.2 Inline Progress-Fill Segment (Capacity Utilization)
Divides the connection path into a dual-layer path structure representing current load vs. total theoretical capacity.
<svg viewBox="0 0 600 150" width="100%" height="150" xmlns="http://www.w3.org/2000/svg">
<path d="M 100,75 L 500,75" stroke="#f1f5f9" stroke-width="16" stroke-linecap="round" />
<path d="M 100,75 L 500,75" stroke="#cbd5e1" stroke-width="16" stroke-linecap="round" stroke-dasharray="100%" />
<path d="M 100,75 L 388,75" stroke="#059669" stroke-width="16" stroke-linecap="round" />
<text x="300" y="80" font-family="sans-serif" font-size="11" font-weight="bold" fill="#ffffff" text-anchor="middle">72% Capacity Utilized</text>
</svg>
3.3 Animated Particle Stream (<animateMotion>)
Uses native SVG declarative animation to move a discrete particle along a complex bezier path.
<svg viewBox="0 0 600 200" width="100%" height="200" xmlns="http://www.w3.org/2000/svg">
<path id="linkPath" d="M 80,150 Q 300,10 520,150" fill="none" stroke="#94a3b8" stroke-width="3" stroke-dasharray="4,4" />
<circle r="7" fill="#ea580c">
<animateMotion dur="1.5s" repeatCount="indefinite">
<mpath href="#linkPath" />
</animateMotion>
</circle>
</svg>
4 Node-Level Structural Metrics
4.1 Radius Proportional Scaling (Node Degree / Importance)
Scales node radius r to directly symbolize aggregate weighted centrality derived from incoming and outgoing links.
<svg viewBox="0 0 600 200" width="100%" height="200" xmlns="http://www.w3.org/2000/svg">
<line x1="120" y1="100" x2="480" y2="100" stroke="#cbd5e1" stroke-width="4" />
<circle cx="120" cy="100" r="25" fill="#3b82f6" />
<text x="120" y="104" font-family="sans-serif" font-size="12" fill="#ffffff" text-anchor="middle">Score: 25</text>
<circle cx="480" cy="100" r="55" fill="#1d4ed8" />
<text x="480" y="104" font-family="sans-serif" font-size="14" font-weight="bold" fill="#ffffff" text-anchor="middle">Score: 85</text>
</svg>
4.2 Concentric Influence Rings / Glow Halos
Renders secondary translucent SVG boundary rings to illustrate spatial reach or influence zones.
<svg viewBox="0 0 600 200" width="100%" height="200" xmlns="http://www.w3.org/2000/svg">
<circle cx="300" cy="100" r="80" fill="#93c5fd" fill-opacity="0.25" stroke="#60a5fa" stroke-width="1.5" stroke-dasharray="4,4" />
<circle cx="300" cy="100" r="55" fill="#60a5fa" fill-opacity="0.35" />
<circle cx="300" cy="100" r="30" fill="#1d4ed8" />
<text x="300" y="105" font-family="sans-serif" font-size="12" font-weight="bold" fill="#ffffff" text-anchor="middle">Node Core</text>
</svg>
4.3 Embedded Ring-Donut Proportion Gauge
Integrates a segmented stroke gauge directly inside or around the node geometry to represent completion rates.
<svg viewBox="0 0 600 200" width="100%" height="200" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(300, 100)">
<circle r="40" fill="#0f172a" />
<circle r="48" fill="none" stroke="#334155" stroke-width="8" />
<circle r="48" fill="none" stroke="#22c55e" stroke-width="8" stroke-dasharray="226 301" transform="rotate(-90)" />
<text x="0" y="5" font-family="sans-serif" font-size="14" font-weight="bold" fill="#ffffff" text-anchor="middle">75%</text>
</g>
</svg>
5 Multi-Metric Edge Encodings
5.1 Multi-Ribbon Parallel Strand System
Splits a single structural connection into distinct colored parallel sub-paths to track multiple metrics concurrently.
<svg viewBox="0 0 600 200" width="100%" height="200" xmlns="http://www.w3.org/2000/svg">
<circle cx="80" cy="100" r="35" fill="#1e293b" />
<circle cx="520" cy="100" r="35" fill="#1e293b" />
<path d="M 80,85 C 200,40 400,40 520,85" fill="none" stroke="#16a34a" stroke-width="6" />
<text x="300" y="40" font-family="sans-serif" font-size="11" fill="#15803d" text-anchor="middle">Capital: $4.2M</text>
<path d="M 80,100 C 200,100 400,100 520,100" fill="none" stroke="#2563eb" stroke-width="3" />
<text x="300" y="95" font-family="sans-serif" font-size="11" fill="#1d4ed8" text-anchor="middle">API Calls: 1.2M</text>
<path d="M 80,115 C 200,160 400,160 520,115" fill="none" stroke="#d97706" stroke-width="10" />
<text x="300" y="170" font-family="sans-serif" font-size="11" fill="#b45309" text-anchor="middle">Shipments: 850 Tons</text>
</svg>
5.2 Midpoint Embedded Mini Radar Chart Intersect
Embeds a multi-axis quantitative polygon directly along the link center point to represent multi-dimensional relationship vectors.
<svg viewBox="0 0 600 240" width="100%" height="240" xmlns="http://www.w3.org/2000/svg">
<line x1="60" y1="120" x2="540" y2="120" stroke="#94a3b8" stroke-width="2" />
<g transform="translate(300, 120)">
<circle r="45" fill="#ffffff" stroke="#cbd5e1" stroke-width="1.5" />
<circle r="30" fill="none" stroke="#e2e8f0" stroke-width="1" />
<circle r="15" fill="none" stroke="#e2e8f0" stroke-width="1" />
<line x1="0" y1="-45" x2="0" y2="45" stroke="#cbd5e1" stroke-width="1" />
<line x1="-45" y1="0" x2="45" y2="0" stroke="#cbd5e1" stroke-width="1" />
<polygon points="0,-35 40,0 0,15 -25,0" fill="#7c3aed" fill-opacity="0.4" stroke="#6d28d9" stroke-width="2" />
<text x="0" y="-50" font-family="sans-serif" font-size="9" text-anchor="middle" fill="#475569">Trust</text>
<text x="52" y="3" font-family="sans-serif" font-size="9" text-anchor="start" fill="#475569">Freq</text>
<text x="0" y="58" font-family="sans-serif" font-size="9" text-anchor="middle" fill="#475569">Cost</text>
<text x="-52" y="3" font-family="sans-serif" font-size="9" text-anchor="end" fill="#475569">Align</text>
</g>
</svg>
Comments