Untitled
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()
Leave a Comment