Skip to content

Latest commit

 

History

History
295 lines (213 loc) · 16.7 KB

File metadata and controls

295 lines (213 loc) · 16.7 KB

Olympic Data Analysis - Tableau Dashboard

A comprehensive Tableau dashboard analyzing Olympic Games data, showcasing athlete demographics, country performance, sports statistics, and historical trends.

Dashboard

📊 Dashboard Overview

This project contains interactive Tableau visualizations analyzing Olympic data across multiple dimensions.

Workbook Visualization

Workbook

Dashboard Components

Dashboard 1 - Comprehensive Overview

  • Age Distribution of Winners
  • Top 10 Countries by Total Medals
  • Top 10 Sports by Total Medals
  • Weight and Height Correlation Analysis
  • Weight Distribution of Winners
  • Total Athletes by Year and Season

Dashboard 2 - Detailed Analytics

  • Male vs Female Participation Trends
  • Temporal Analysis of Athlete Participation
  • Country-specific Medal Breakdown
  • Sports Performance Metrics

🎯 Key Insights

  • Athlete Demographics: Correlation between physical attributes (height/weight) and performance
  • Country Performance: Medal distribution across nations
  • Sport Analysis: Most popular and medal-winning sports
  • Historical Trends: Evolution of Olympic participation over time
  • Gender Analysis: Male vs Female participation patterns

📁 Repository Structure

olympic-tableau-dashboard/
├── README.md
├── data/
│   ├── raw/
│   │   └── olympic_data.csv
│   ├── processed/
│   │   └── cleaned_olympic_data.csv
│   └── data_dictionary.md
├── tableau/
│   ├── olympic_analysis.twbx
│   └── olympic_analysis.twb
├── images/
│   ├── dashboard.png
│   ├── workbook.png
│ 
├── documentation/
│   ├── setup-guide.md
│   ├── data-preparation.md
│   ├── visualization-guide.md
│   └── troubleshooting.md
├── scripts/
│   ├── data_cleaning.py
│   └── data_validation.py
└── resources/
    └── tableau-learning-resources.md

🚀 Getting Started

Prerequisites

  • Tableau Desktop (2021.1 or later) or Tableau Public (Free)
  • Python 3.8+ (for data preparation scripts)
  • Git (for version control)

Installation Steps

  1. Clone the repository

    git clone https://github.com/yourusername/olympic-tableau-dashboard.git
    cd olympic-tableau-dashboard
  2. Install Python dependencies (if using data preparation scripts)

    pip install -r requirements.txt
  3. Open in Tableau

    • Open Tableau Desktop or Tableau Public
    • Navigate to File > Open
    • Select tableau/olympic_analysis.twbx (packaged workbook with data)
    • OR tableau/olympic_analysis.twb (if you have the data source configured)

📊 Data Sources

Primary Dataset

  • Source: Olympic Athletes Dataset
  • Format: CSV
  • Records: ~270,000 athlete records
  • Time Period: 1896-2016
  • Size: ~35 MB

Data Fields

Field Type Description
ID Integer Unique athlete identifier
Name String Athlete name
Sex String M/F
Age Integer Age at competition
Height Float Height in cm
Weight Float Weight in kg
Team String Country/NOC
NOC String National Olympic Committee code
Games String Olympic Games identifier
Year Integer Year of competition
Season String Summer/Winter
City String Host city
Sport String Sport category
Event String Specific event
Medal String Gold/Silver/Bronze/NA

🛠️ Building the Dashboard

Step-by-Step Guide

1. Data Preparation

# Run data cleaning script
python scripts/data_cleaning.py

2. Connecting Data in Tableau

  • Open Tableau Desktop
  • Connect to Data > Text File
  • Select data/processed/cleaned_olympic_data.csv
  • Review data types and fix if needed

3. Creating Visualizations

Male vs Female Participation

  • Drag Year to Columns
  • Drag Number of Records to Rows
  • Drag Sex to Color
  • Change mark type to Area
  • Add trend lines

Top 10 Countries with Total Medals

  • Create calculated field: Medal Count = IF [Medal] != 'NA' THEN 1 ELSE 0 END
  • Drag Team to Rows
  • Drag SUM(Medal Count) to Columns
  • Sort descending and filter top 10
  • Add Medal to Color for breakdown

Age Distribution - Winners

  • Filter data where Medal is not 'NA'
  • Create bins for Age (bin size: 5 years)
  • Drag Age (bin) to Columns
  • Drag Number of Records to Rows
  • Drag Medal to Color
  • Change to stacked bars

Weight and Height Correlation

  • Drag Height to Columns
  • Drag Weight to Rows
  • Change mark type to Circle
  • Filter where Medal is not 'NA'
  • Add trend line (linear)
  • Adjust transparency for overlapping points

Top 10 Sports by Total Medals

  • Drag Sport to Rows
  • Drag Medal Count to Columns
  • Filter top 10 sports
  • Sort descending
  • Format as horizontal bars

Total Athletes by Year and Season

  • Drag Year to Columns
  • Drag Number of Records to Rows
  • Drag Season to Color
  • Show both Summer and Winter trends

4. Creating Dashboards

Dashboard Layout

  • Create new dashboard (Device: Desktop Browser 1000x800)
  • Use Tiled layout for precise control
  • Add visualizations from sheets
  • Add filters for interactivity
  • Add legends and titles
  • Format colors consistently

🎨 Design Principles Used

Color Scheme

  • Primary: Blue (#4E79A7) - Professional, trustworthy
  • Secondary: Orange (#F28E2B) - Energy, achievement
  • Accent: Teal (#76B7B2) - Balance
  • Medals: Gold (#E6C300), Silver (#C0C0C0), Bronze (#CD7F32)

Layout Guidelines

  • Consistent spacing between visualizations
  • Clear hierarchical titles
  • Logical grouping of related charts
  • Interactive filters on the right side
  • Color-coded legends

📚 Learning Resources

For Beginners

  1. Tableau Public Free Training
  2. Tableau Desktop Specialist Certification
  3. Makeover Monday - Weekly viz challenges

Advanced Topics

  1. Tableau LOD Expressions
  2. Dashboard Design Best Practices
  3. Performance Optimization

🔧 Troubleshooting

Common Issues

Problem: Data not loading

  • Solution: Check file path, ensure CSV is not open in another program

Problem: Incorrect aggregation

  • Solution: Right-click field > Default Properties > Aggregation

Problem: Slow dashboard performance

  • Solution: Use data extracts (.hyper) instead of live connections, optimize calculations

Problem: Filters not working across sheets

  • Solution: Apply filters to worksheets, use Actions for cross-filtering

📊 Data Preparation Scripts

Cleaning Script (scripts/data_cleaning.py)

import pandas as pd

# Load raw data
df = pd.read_csv('data/raw/olympic_data.csv')

# Handle missing values
df['Age'].fillna(df['Age'].median(), inplace=True)
df['Height'].fillna(df['Height'].median(), inplace=True)
df['Weight'].fillna(df['Weight'].median(), inplace=True)

# Remove duplicates
df.drop_duplicates(subset=['ID', 'Games', 'Event'], inplace=True)

# Standardize text fields
df['Team'] = df['Team'].str.title()
df['Sport'] = df['Sport'].str.title()

# Save cleaned data
df.to_csv('data/processed/cleaned_olympic_data.csv', index=False)
print(f"Cleaned data saved. Total records: {len(df)}")

🔗 Useful Links