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 2022-10-31 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.8. For plotnine to work you must use Python 3.8.
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.ipynb.
Lecture1_MVE080.pdf - Slides for Lecture1
Slides_l1.ipynb - Code for reproducing the graphics in Lecture1 - Wednesday 2022-11-02 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
Lecture2_MVE080.pdf - Slides Lecture2
Lecture2.ipynb - Code for reproducing the graphics in Lecture2 - Monday 2022-11-07 13:15-15:00 : Colors and visualizing proportions ()
Dataset used to compare colormaps : Ex_color_maps-1.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)
Lecture3.pdf - Slides lecture3
Lecture3.ipynb - Code for reproducing the visuals in lecture 3. For the map you must install geopandas (which can be done in the anaconda navigator) - Wednesday 2022-11-09 08:00-10:00 : 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
Lecture4.pdf - Slides lecture4
Lecture4.ipynb - Code for reproducing the visual in lecture 4. To create the parallel coordinates plot you must install plotly (can be done via anaconda navigator) - Monday 2022-11-14 13:15-15:00 : Visualizing geo-spatial data and uncertainty ()
Chocolate datasets : Chocolate_sum.csv and Chocolate_tidy.csv
Curve fits datasets : Sum_curve_fit.csv , Traces_fit.csv and Data_obs.csv
Probability datasets : Plot_uncertainity.csv
Forest coverage dataset : Forest_tidy.csv
Map-files for län (states) in Sweden (you need all four files in the archive) : Lan_Sweref99TM_region.zip
Map files for kommun (municipal) in Sweden (you need all four files in the archive) : Kommun_Sweref99TM_region-1.zip
Map files for USA (you need all the files in the archive) : cb_2018_us_state_500k.zip
Swedish population per län/state : Swe_pop_län_2021.csv
Swedish population per municipal : Swe_pop_2021.csv
Starbucks dataset : Startbucks_location.csv
Lecture5.pdf - Slides lecture5
Lecture5.ipynb - Code for reproducing the visuals in lecture 5. For the map you must install geopandas (which can be done in the anaconda navigator) - Wednesday 2022-11-16 08:00-10:00 : The truthful art ()
Internet is dead dataset : Internet_dead.csv
Swedish election data per län (state) : Election_2018_lan_sum.csv (here you must use the map files for län (states) above)
Lecture6.pdf - Slides lecture6
Lecture6.ipynb - Code for reproducing the visuals in lecture6. For the map you must install geopandas (which can be done in the anaconda navigator)
Poll for exam date :Go to menti.com and enter the code 83904129
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 (slides)
- Visualization of particle dynamics using Blender (slides)
PDF notes about Blender particles
Course summary:
Date | Details | Due |
---|---|---|