Untitled
unknown
plain_text
9 months ago
3.5 kB
4
Indexable
import matplotlib.pyplot as plt
from matplotlib.patches import FancyBboxPatch, ConnectionPatch
# Configure plot
fig, ax = plt.subplots(figsize=(12, 8))
fig.patch.set_facecolor('#0F172A') # Dark navy background
ax.axis('off')
# --- Core Visualization Elements ---
# Central globe icon
ax.text(0.5, 0.6, '🌐', fontsize=120, ha='center', va='center', alpha=0.2)
# Main title
ax.text(0.5, 0.92, 'DIGITAL WARFARE ACCELERATORS',
ha='center', va='center', fontsize=24, color='white',
fontweight='bold', fontfamily='Arial')
# Subtitle
ax.text(0.5, 0.87, 'How New Media Intensifies Modern Conflicts',
ha='center', va='center', fontsize=16, color='#94A3B8',
fontstyle='italic')
# --- Data Flow Elements ---
# Central processor
processor = FancyBboxPatch((0.4, 0.4), 0.2, 0.2,
boxstyle="round,pad=0.1",
facecolor='#1E293B', edgecolor='#475569',
linewidth=2)
ax.add_patch(processor)
ax.text(0.5, 0.5, 'Conflict\nAmplifier', ha='center', va='center',
color='white', fontsize=14, linespacing=1.4)
# Dynamic connectors
connector_props = dict(arrowstyle='fancy,head_length=1,head_width=1',
color='#64748B', linewidth=1.5)
connections = [
((0.3, 0.7), (0.4, 0.6)), # Misinformation
((0.7, 0.7), (0.6, 0.6)), # Cyber
((0.3, 0.3), (0.4, 0.4)), # Radicalization
((0.7, 0.3), (0.6, 0.4)) # Fatigue
]
for start, end in connections:
ax.add_artist(ConnectionPatch(start, end, "data", "data",
arrowstyle=connector_props['arrowstyle'],
color=connector_props['color'],
linewidth=connector_props['linewidth']))
# --- Information Cards ---
cards = [
{'pos': (0.1, 0.7), 'color': '#EF4444', 'icon': '🤖',
'title': 'AI-Powered\nMisinformation',
'content': 'Deepfake campaigns in\nUkraine conflict'},
{'pos': (0.1, 0.3), 'color': '#3B82F6', 'icon': '💻',
'title': 'Cyber Warfare',
'content': '300% increase in state-sponsored\nattacks since 2019'},
{'pos': (0.9, 0.7), 'color': '#10B981', 'icon': '⚠️',
'title': 'Digital Radicalization',
'content': 'ISIS recruitment through\ngaming platforms'},
{'pos': (0.9, 0.3), 'color': '#F59E0B', 'icon': '😰',
'title': 'War Fatigue',
'content': '72% report mental health\nimpact from conflict media'}
]
for card in cards:
x, y = card['pos']
# Card background
ax.add_patch(FancyBboxPatch((x, y), 0.25, 0.25,
boxstyle="round,pad=0.1",
facecolor=card['color'],
alpha=0.9, edgecolor='white'))
# Icon
ax.text(x+0.125, y+0.18, card['icon'], fontsize=28,
ha='center', va='center')
# Title
ax.text(x+0.125, y+0.12, card['title'], fontsize=12,
ha='center', va='center', color='white', fontweight='bold')
# Content
ax.text(x+0.125, y+0.04, card['content'], fontsize=10,
ha='center', va='center', color='white', linespacing=1.3)
# --- Annotations & Sources ---
ax.text(0.5, 0.05, 'Source: Cyber Conflict Studies Association (2023) | Visualization: AI Research Assistant',
ha='center', va='center', color='#64748B', fontsize=9)
plt.savefig('modern_digital_warfare.png', dpi=300, bbox_inches='tight', facecolor='#0F172A')
plt.show()Editor is loading...
Leave a Comment