An interactive dashboard that visualizes Eurostat data on renewable energy developments across European countries. Built with Python and Panel, the web app provides an intuitive interface to explore renewable energy trends from 2004 to 2022.
Try the app - explore renewable energy data for Europe directly in your browser.
-
Interactive dashboard powered by Panel and Plotly
-
Time-series visualization of renewable energy shares by country and category
-
Geospatial mapping using GeoJSON and GeoPandas
-
Downloadable datasets and smooth filtering options
Bar Charts
- Unified display of EU Total Average across all charts, with a toggle option to show/hide it.
- Minor improvements to hover templates and trace labels.
Map
- Implemented hover templates displaying country flags and data.
- Recentered map and adjusted zoom.
- Added layout spacers for improved alignment.
Description
- Added basic usage instructions to the dashboard.
- Added emojis and graphics.
Layout & Dashboard
- Reorganized dashboard components for better clarity and user experience.
- Minor improvements to scaling.
File Structure
- Reorganization of file structure to me more modular and easier to expand.
-
Core:
os,json -
Data Handling:
pandas,geopandas -
Visualization:
plotly.express,plotly.graph_objects,plotly.io -
Dashboard UI:
panel
-
File:
nrg_ind_ren_linear.csv -
Source: Eurostat β Renewable Energy
-
Years: 2004β2022
-
Columns: Country codes, energy type, unit, value (%), flags
-
Categories: Total renewables, electricity, heating/cooling, transport
-
File:
europe.geojson -
Source: GISCO β Eurostat
-
Year: 2024
-
Format: GeoJSON (EPSG:4326), scale 1:20M
EU-Energy-Map/
βββ app.py # Main dashboard entry point
βββ config.py # Configurations (tokens, paths, etc)
βββ data/
β βββ loader.py # Loads and merges CSV/GeoJSON data
β βββ filters.py # Preprocessing and filtering logic
β βββ nrg_ind_ren_linear.csv # Eurostat renewable energy data
βββ components/
β βββ charts/
β β βββ bar_chart_by_country.py # Bar chart: Country vsU
β β βββ bar_chart_by_year.py # Bar chart: All countries by year
β βββ map.py # Interactive choropleth map
β βββ widgets.py # Dashboard widgets (sliders, selectors)
βββ layout/
β βββ dashboard.py # Layout composition for Panel
βββ utils/ # Helper functions
β βββ colors.py # Color scales & conversion
β βββ flags.py # ISO2 code β emoji flag
βββ assets/
β βββ europe-renewables-500px.png # Dashboard image
β ββββ logo-500px.png # Logo
βββ geo/
βββ europe.geojson # European country boundaries (GeoJSON)Code documentation is provided as a Jupyter notebook.
You can view it here: documentation.ipynb
- Holoviz Panel β A powerful Python framework for creating interactive web apps and dashboards, used for the UI in this project.
- Pandas β Essential for data manipulation and analysis, enabling efficient handling of Eurostat datasets.
- Geopandas β Extends pandas to support geospatial data, making it easy to work with geographic boundaries and mapping.
- Jupyter - An interactive environment for running Python code in notebooks, ideal for experimentation, documentation, and prototyping scripts.
- Docker Documentation - Official guides for containerizing, deploying, and running this app consistently across different environments.
This project is open source and available under the MIT License. You may modify, distribute, and use it freely in your own projects.
A standalone Jupyter Notebook version of the EU Energy Map dashboard is available from a previous release:
- Run the notebook locally to explore and visualize Eurostat renewable energy data without setting up the full web app.
- Includes interactive charts and geospatial mapping using the same datasets.
- Ideal for experimentation, prototyping, or educational use.
If you're working with Eurostat TSV datasets and need a tool for quick conversion to CSV, check out my companion project:
β‘οΈ TSV-CSV Converter β A lightweight utility to convert Eurostat-style .tsv files into clean .csv format.


