MVE080 / MMG640 Scientific visualization
Course PM
This page contains the program of the course. Other information, such as learning outcomes, teachers, literature and examination, are in a separate course PM. In addition to Canvas, we shall use CampusWire for Q&A as a way for both students and teachers to ask and reply on questions that come up. During the introductory meeting we will send out an invitation link to all students to participate in the CampusWire virtual classroom.
Program
In this course you will learn about various concepts, techniques, and tools for visualization of scientific data in both 2 and 3 dimensions. The GU course code is MMG640. The Chalmers course code is MVE080. The schedule of the course is in TimeEdit - just search for the course code. There is a seamless integration between lectures and computer labs. Therefore, all teaching will take place in the computer rooms MV:F24-25.
Preliminary course outline (modified throughout the course):
PART 1: 2D VISUALIZATIONS - Lecturer: Sebastian Persson
This part is based on the on-line book Fundamentals of Data Visualization by Claus O. Wilke, the on-line ggplot2: Elegant Graphics for Data Analysis by Hadley Wickham and a recent review article The science of visual data communication: What works by Franconeri et al. We will use the grammar of graphics Python library plotnine, which is based on ggplot2. Hence when googling for help you can search for both ggplot and plotnine.
After each lecture I will upload the slides, code used to produce the visuals, and relevant datasets.
- Monday 2023-11-04 13:15 - 15:00 : Course introduction ()
Relevant links:
Getting started with the CampusWire learning platform
Python basics tutorial
NumPy for MATLAB users
The Anaconda Python distribution - I recommend you install Anaconda for Python3.11. For plotnine to work you must use Python 3.11.
Jupyter Notebook basics
Download VS Code - A good editor with support for notebooks
The correct environment (Python version and package version) can be recreated from this yml-file: MVE080.yml. If you have correctly installed Jupyter Notebooks and plotnine you will be able to run the following notebook : Hello_MVE080-1.ipynb
Slides Lecture 1 : Lecture1.pdf
Code for producing the visuals in lecture 1 : Slides_l1.ipynb - Wednesday 2022-11-01 08:00-10:00 : Visualizing amounts and distributions ()
Operating system dataset : mobile_os_market_share.csv
Median lifespan data : Life_tidy.csv
Weather data for Gothenburg : Weather_tidy-1.csv
The non summary winter dataset : Winter_vås.csv
Weather data for Västerås : Winter_vås_summary.csv
Data on Schizophrenics born : Aus_schz.csv
Slides lecture 2 : Lecture2.pdf
Code for the visuals : Lecture2-1.ipynb - Monday 2023-11-06 13:15-15:00 : Colors and visualizing proportions ()
Dataset used to compare colormaps : Ex_color_maps-1.csv
Circles dataset : Circles.csv
Data on life-happiness for 2018 : 2018.csv
Data with Simpsons's paradox (testing categorical colors) : Ex_colors.csv
GDP data : GDP_tidy.csv
Swedish education data : Education_plot_format.csv
Titanic data : Titanic.csv
Spain employment data : Span_unemployment.csv
Data for using rainbow desaturated palette : Rainbow_desaturated.csv (in the notebook there is code for reading and using this palette)
Slides for lecture 3 : Lecture3_MVE080.pdf
Code for lecture 3 : Lecture3-1.ipynb - Wednesday 2023-11-08 10:00-11:45! : Visualizing associations and time series ()
Spain employment data : Spain_tidy.csv
Inflation data : Inflation.csv
Sweden population data : Sweden_pop.csv
France population data : France_pop.csv
Bacterial growth data : Growth_rate.csv
Apartment prices data : Housing_sweden.csv
World happiness data : World_2018.csv
Salary data : Salary_sweden.csv
Lifespan data for horizon plot : Life_tidy-1.csv
R-code for horizon plot : Horizon_plot.R
Slides for lecture 4 : Lecture4_MVE080.pdf
Code for lecture 4 : Lecture4-1.ipynb - Monday 2023-11-13 13:15-15:00 : Visualizing uncertainty ()
Chocolate datasets : Chocolate_tidy-1.csv and Chocolate_sum-1.csv
Curve fit data : Traces_fit-1.csv, Sum_curve_fit-1.csv, Sum_curve_fit-2.csv
Probability : Plot_uncertainity-1.csv
Code for lecture 5 : Lecture_uncertainity.ipynb
Slides for lecture 5 : Lecture5_MVE080.pdf - Wednesday 2023-11-15 10:00-11:45! : Storytelling with data ()
Slides for lecture 6 : Storytelling.pdf
Code for lecture 6 : Storytelling.ipynb - Monday 2023-11-20 13:15-15:00 : Visualizing geospatial data and the truthful art ()
Forest dataset : Forest_tidy.csv
Sweden map region Kommun_Sweref99TM_region.zip and municipal Kommun_Sweref99TM_region.zip
Sweden population data : Swe_pop_län_2021.csv and Swe_pop_2021.csv
USA map : cb_2018_us_state_500k.zip
Starbucks data : Startbucks_location.csv
Code for Geospatial data lecture : Geospatial_data.ipynb
Slides for Geospatial data : Lecture_maps.pdf
Internet is dead data : Internet_dead-1.csv
Swedish election data : Election_2018_lan_sum-1.csv
Code for the truthful art : Lecture6-1.ipynb
Slides for the truthful art : Truthful_art.pdf - Wednesday 2023-11-22 08:00-12:00 : Computer lab
PART 2: 3D GRAPHICS AND ANIMATION
This part is based on the combination of Blender 3D and Python for scripting.
- Basic math of 3D graphics (slides)
- Blender 3D and Python scripting (slides)
Download Blender 3D
Blender manual pages
Blender Fundamentals Video Tutorials
Cheat sheet
Blender Guru Video Tutorial
Python scripting - Rotations in 3D: quaternions (slides)
Notes on quaternions - Course project (link)
- Visualization of particle dynamics using Blender (slides)
PDF notes about Blender particles
Course summary:
Date | Details | Due |
---|---|---|