Git Product home page Git Product logo

vega-visuals's Introduction

Vega-Visuals

This is a growing compilation of visuals that I have created in Vega. Many of these visuals are accompanied by a Power BI file that includes a Deneb version. Some visuals are more experimental, while others are more complete. My hope is that others can learn, critique, and gain inspiration from visiting this collection.

Vega-Visuals PSD template by aleksandr_samochernyi

Interactive Radial / Line Combo Chart New!

Vega-Visuals A radial / line combo chart that displays Temperature vs Energy Consumption for the given year. Focus can be shifted to a specific week via mouseover. The data is entirely fictional, and the visual was inspired by the Sunny Edinburgh project.

Vega Power BI
Open the Chart with the Vega Editor Open the Chart in Power BI
Open the Vega Specification Download the .pbix

Zoomable Serpentine Timeline

Vega-Visuals A zoomable serpentine timeline. The serpentine shape can be an option for instances where an oblong canvas is not ideal. This visual incorporates a timer to facilitate zoom and fade animations, providing a technique beneficial for drill-down behavior and exploration. This example reveals text marks and icons upon zoom, corresponding to the user-selected node. Alternatively, you can render various mark types, axes, legends, etc., to provide additional insights into the selected node. The behavior and shape can be customized using many of the included signals.

Vega Power BI
Open the Chart with the Vega Editor Open the Chart in Power BI
Open the Vega Specification Download the .pbix
Open a Simplified Version from the Vega Docs

Simulating Data Joins


The enter, update, exit pattern is a core concept in D3.js. D3 is a low level JavaScript library. Vega was built on top of D3. By binding data to visual elements (typically SVGs), you can create dynamic data visualizations. This approach allows for easier exploration and animation. The smooth movement of marks not only looks neat but, more importantly, works well with our pre-attentive processing.

The principle is explained more comprehensively by the creator of D3 on this page. The gist is that as your data changes, so can your visual marks if you bind them correctly (a concept known as object constancy). Marks bound to new data fall into the "enter" selection. Marks bound to data that remains after a change fall into the "update" selection. Marks bound to data that is no longer in the dataset after a change go into the "exit" selection.

Vega includes enter, update, and exit channels, although, honestly, I haven't found an example that uses all three. I do not believe I've ever seen a Vega example that uses "exit."

I was able to simulate a visual example of the data join in Vega. In reality, I'm currently only using the "update" channel for everything here.

Vega
Open the Chart with the Vega Editor
Open the Vega Specification

Zoomable Circle Packing

This is an extension of the typical circle packing layout. A circle packing layout uses containment to convey hierarchical relationships. This version incorporates a timer to facilitate zoom and fade animations, offering a technique beneficial for drill-down behavior and exploration. Using this technique, various mark types, axes, legends, etc., can be rendered upon zoom to provide additional insights into the selected node.

Vega Power BI
Open the Chart with the Vega Editor Open the Chart in Power BI
Open the Vega Specification Download the .pbix
Open a Simplified Version from the Vega Docs

Easing Functions Visualized

Here I'm comparing different easing functions and visualizing their respective formulas. This isn't a comprehensive list of easing functions, but these are certainly some popular ones. Special thanks to Pavithra Kodmad for writing this excellent article on understanding easing! A few months before creating this visual, I wouldn't have thought that this would be feasible in Vega.

Vega Power BI
Open the Chart with the Vega Editor Open the Chart in Power BI
Open the Vega Specification Download the .pbix

Interactive Timeline

This visual is an exploration of some alternative interaction techniques. It includes:

  • A scrubber control (in the form of a rotating baseball!).
  • A dynamic progress line.
  • Sub node-link trees that fade-in on a delay.

Although each node-link tree only goes one level deep, I can envision potential use-cases for combining on-demand trees with other visuals, such as scatter plots, line charts, etc.

Vega Power BI
Open the Chart with the Vega Editor Open the Chart in Power BI
Open the Vega Specification Download the .pbix

Bar Brushing

This visual is an exploration of an alternative brushing technique. The bars show amounts as with any traditional bar chart, but has the added value of being adjustable to satisfy a given target. This type of interactivity gives the user more control and the ability to optimize inputs.

Vega Power BI
Open the Chart with the Vega Editor Open the Chart in Power BI
Open the Vega Specification Download the .pbix

vega-visuals's People

Contributors

giammaria avatar

Stargazers

Nadia Fankhauser avatar  avatar  avatar leo avatar  avatar  avatar Klaus Eckelt avatar Isin Kosemen avatar

Watchers

 avatar

Forkers

974steph aghonaim

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.