Untitled

 avatar
unknown
plain_text
9 days ago
3.5 kB
1
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()
Leave a Comment