Git Product home page Git Product logo

ivis-project's Introduction

Visualization Project: Moral Machine

This project aims to visualize differences in morals and culture across the world. It is mainly inspired by the Moral Machine online experiment. The paper can be found here. The data is published on OSF

Github Pages

https://willenbrink.github.io/Ivis-project/

Setup to use raw data

Download and extract the data from OSF and put the extracted .csv files in the raw folder. They should be named ss16pusa.csv, ss16pusb.csv, ss16pusc.csv, and ss16pusd.csv.

ivis-project's People

Contributors

marcusgahlin avatar modesten avatar ssbthatsme avatar vlle1 avatar willenbrink avatar

Watchers

 avatar  avatar

Forkers

ssbthatsme

ivis-project's Issues

Color scheme

Still not happy with the color scheme, specifically now with two markers (and actually even one) we need more colors for Left, Right, Selected and Hover. They all have to be distinct (maybe not Selected and Hover).

Use maybe: https://medialab.github.io/iwanthue/

Errors in the colour space!

There appear to be some strange errors in the colour space. For example, in the category "Age: Elderly-> Young" there are only two colours when nothing is selected (fully red or fully white). However, when selecting one of the red countries we see that there is actually a pretty big difference between the countries that previously had the exact same shade of red. This is not how things should work and should be fixed before the demo.

About page

Short explanation and link to moral machine.

Change the color of country outline

The outline used to mark a country when hovering over it is currently a green color that is on / close to the color scale used for data mapping. This means that the outline can be hard to see when hovering over a country with a a value that maps to a green color. It may also confuse users as they might think the color of the outline also constitutes a mapping of data. It would probably be better to make the outline black or at least use a color that is not used for data mapping.

Small countries not showing due to detail level

Currently, small countries (mostly island nations) are not showing up on our map. I'll look into fixing this issue by combining the different map-detail levels in a way that still allows for smooth interaction.

Countries without data are visualized as though they have data

Certain countries without data are visualized as though they have data. This is an issue in and of itself but it also does some strange things to the colour space. An example of this is Sudan but it's true for most countries in Africa and some around the world. Oh, and Antarctica as well. I was wondering why that one had data...

Improve labels on the legend

The labels need improvement, regarding left/right alignment.
We could also add an image of the respective category (although that might belong into the info tooltips). This would help clarify what exactly "fit vs large" etc. means.

Fix position of map

The default position should be in the middle? Maybe we should add a reset button?

Zoom Bug

after pressing "reset zoom": when zooming again, the zoom "jumps back" to where it was before resetting :/

Bug: Age Category with invisible extremum

When selecting Age category and France no country is bluer. The legend tells otherwise. There is likely some city-state that has a higher value but is not shown. We should either show every state or remove the invisible ones from the data set.

Change stroke size based on level of zoom

The strokes for the selected country and the hovered country are currently always the same. It would be better if they changed based on the level of zoom since they need to be large to be visible when zoomed out but can be in the way of smaller countries when zoomed in.

Make world map switch between detail-levels when zooming.

We currently only use the less detailed map:
https://unpkg.com/[email protected]/countries-110m.json

It would be better to use this one when zoomed in:
https://unpkg.com/[email protected]/countries-50m.json

And maybe this one when very zoomed in:
https://unpkg.com/[email protected]/countries-10m.json

The number at the end of the link corresponds to how many miles there are between points (or, at least I think that's what it is) so 10m means 10 miles between each point. These are the only three versions defined.

Colourblindness options

The most common type of colourblindness is red-green colourblindness. Currently, we show whether a country has a greater or lesser value than the selected one by colouring it either red or green (in "PerCategoryViz"). This would be problematic for many individuals. We should have an option somewhere to toggle the colours that are used in the visualisation.

Await promise in the beginning

We have a timeout in the beginning because we do not handle stuff asynchronously. That should be fixed I think because the timeout increases over time (in my perception). With 300ms I can semi-reliably reproduce a situation in which no country is highlightable due to the data not having loaded.

Render hovered country after others

Currently, part of the stroke that shows the country that the user hovers over may be partially covered by other countries as they are rendered later. Thus we should render that stroke after rendering all the countries.

Restrict Movement of The World

Currently, it is possible to move the world map so that it is completely off the screen and thus lose track of where it is. Currently, one has to reload the website if this happens. The best way to solve this would be to restrict the movement of the map so that it cannot move offscreen, but we could also just add a reset button as a temporary solution for the demo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.