Mapping human emotions
Published on November 15, 2023.I thought it would be fun to map the human emotions and see how they relate to each other, so I did. But what is it and what does it do? The three dimensional diagram shows 4 axis that each represent one of the basic four emotions (happiness, Fear/supprise, anger/disgust and sadness). Most emotions are can measured in severity of one of them. For instance disappoinment is anger at a low intensity, while rage is anger at a high intensity. Some however are composed out of 2 or 3 basic emotions. But hey, just take a look for yourself.
You can rotate it, click on emotions and read more about them. Go ahead and try it.
{% include /posts/charting-emotions/index.html %}
How I did the research and stuff
Of course everything was easier said than done. I did have some sketches and ideas on how I would to map things, but I knew I should not be guided by some whimsical thoughts on data-visualisations. So like in any project that involves data, I started with the data-model and worked my way from there.
First of all I needed a classification system. I remembered there was a theory that there were four basal emotions: fear, anger, joy and sadness. But I was not going to be led by some vague memory. I was going to do it all sciency.
After some digging I found out there was a theory of there being six basal emotions proposed by Dr Paul Ekman and a theory of 8 emotions illustrated by Plutchik's wheel [2]. In fact there seems to be a whole lot of disagreement on the subject [3]
Finally I found a recent article proposing that we infact have only four basic emotions, fear/supprise, anger/disgust, joy and sadness.[6]. I used this as my basis for setting up my dataset.
How it works, on the inside.
The engine that builds up the graphic it a shmoosing of d3.js (the data driven part) and Three.js suggested by @Makc3d, Using d3 with Three.js. A lot of the math tools come from JavaScript itself and Three.js. The position calculation I figured out on my own and can be viewed by just inspecting the source code. I you have some in depth questions just ask them below in the comments.
Sources:
- list of emotions: http://www.sonoma.edu/users/s/swijtink/teaching/philosophy_101/paper1/listemotions.htm
- Plutchik's article: http://web.archive.org/web/20010716082847/http://americanscientist.org/articles/01articles/Plutchik.html
- Disagreement in the scientific community about the classification of emotions http://changingminds.org/explanations/emotions/basic%20emotions.htm.
- three.js (a javascript abstraction ontop of WebGL): http://threejs.org/.
- d3.js (javascript library for data-driven documents (HTML, SVG or whatever) ): http://d3js.org
- The four basic human emotions: http://www.gla.ac.uk/news/headline_306019_en.html