Radar Chart

Social Media Platform Engagement Analysis

Dark-themed radar chart comparing social media platforms across user engagement, reach potential, ad ROI, and content virality.

Output
Social Media Platform Engagement Analysis
Python
import matplotlib.pyplot as plt
import numpy as np

# Social media metrics
categories = ['User Engagement', 'Reach Potential', 'Ad ROI', 'Content Virality',
              'Influencer Value', 'Video Performance', 'Shopping Features', 'Young Demographics']
              
tiktok = [98, 95, 85, 98, 90, 98, 78, 98]
instagram = [88, 90, 90, 80, 95, 85, 95, 85]
youtube = [85, 92, 88, 75, 88, 98, 70, 75]
linkedin = [75, 78, 92, 55, 70, 65, 45, 35]

N = len(categories)
angles = np.linspace(0, 2 * np.pi, N, endpoint=False).tolist()
angles += angles[:1]

tiktok += tiktok[:1]
instagram += instagram[:1]
youtube += youtube[:1]
linkedin += linkedin[:1]

fig, ax = plt.subplots(figsize=(10, 10), subplot_kw=dict(polar=True), facecolor='#0a0a0f')
ax.set_facecolor('#0a0a0f')

ax.plot(angles, tiktok, 'o-', linewidth=2.5, color='#27D3F5', label='TikTok', markersize=7)
ax.fill(angles, tiktok, alpha=0.15, color='#27D3F5')

ax.plot(angles, instagram, 's-', linewidth=2.5, color='#F5276C', label='Instagram', markersize=7)
ax.fill(angles, instagram, alpha=0.15, color='#F5276C')

ax.plot(angles, youtube, '^-', linewidth=2.5, color='#C82909', label='YouTube', markersize=7)
ax.fill(angles, youtube, alpha=0.15, color='#C82909')

ax.plot(angles, linkedin, 'D-', linewidth=2.5, color='#276CF5', label='LinkedIn', markersize=7)
ax.fill(angles, linkedin, alpha=0.15, color='#276CF5')

ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories, fontsize=10, color='#e2e8f0', fontweight='500')
ax.set_ylim(0, 100)

ax.yaxis.grid(True, color='#1e293b', linestyle='-', linewidth=0.8)
ax.xaxis.grid(True, color='#334155', linestyle='-', linewidth=0.5)
ax.spines['polar'].set_color('#334155')
ax.tick_params(axis='y', colors='#94a3b8')

ax.set_title('Social Media Platform Comparison', fontsize=16, color='#f8fafc',
             fontweight='bold', pad=25)

ax.legend(loc='upper right', bbox_to_anchor=(1.25, 1.1), fontsize=10,
          frameon=True, facecolor='#1e293b', edgecolor='#334155', labelcolor='#e2e8f0')

plt.tight_layout()
plt.show()
Library

Matplotlib

Category

Polar Charts

Did this help you?

Support PyLucid to keep it free & growing

Support