Giter Site home page Giter Site logo

parallel-coordinates's Introduction

Parallel-Coordinates

Matt Hagen & Steven Roach Parallel Coordinates Data Visualization

We initially drew up a static visualization with the idea of grouping items by a categorical variable, and assigning each group a unique color.
Without any interactions we wanted the user to get an idea of the breadth of the data and categories.
staticVisDesign

In designing interactions for filtering, we wanted the ability to filter by quantitative values as well as category.
We did this by implementing a hover interactions that allows the user to filter out all but a single category. staticVisDesign We also implemented a click and drag function so that users could filter a specific range of quantitative values in a given attribute axis.
staticVisDesign

We also came up with the idea of including item names as a table in the lower right section of our visualization, ordered by some selected attribute x. We decided that should be a later design feature, and kept playing with the idea as the visualization continued to develop.

During the static implementation we realized our design was somewhat cluttered and opted to stagger our axis labels and eliminate intermediate axis values. Once we were able to accomplish these primary interactions, we wanted to be able to rearrange our axes. To do this we added a grabbable button to the unused space between staggered axis titles. After we got the basic functionalities working, we went after a sorted item display. We ended up visualizing it as a single column of top 10 (or as many as are available given a filtering) items given their values of the first category axis (that is, the furthest to the left).
This allows the user to choose the sorting attribute by rearranging the desired axis into the first position. Once the items are displayed in order, hovering then highlights the line corresponding to that item. finalStaticVisualization

In developing the interactions we knew we also needed to be smart with our architecture design and created several classes for different aspects of the design. An Axis class holds code for visualizing and moving the axes and a QuantFilter class specifically to handle the click and drag filtering code. With a few exceptions (like release year), all axes start from a min value of 0 for a clear reference point. A Group class holds a HashMap for a category key and color value, and also handles hover interactions. An Item class then holds onto all the data for a given row and a category label which corresponds to a Group hashmap key for easy color pairing. A Line class contains an Item and handles the visual component of the plotted axes positions as given by the Item data. To change the dataset, simple change the string variable path in PC_VIS.pde.

parallel-coordinates's People

Contributors

stevenroach7 avatar

Watchers

James Cloos avatar Matt Hagen avatar  avatar

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.