<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tutorial on Visual Cinnamon</title><link>https://www.visualcinnamon.com/categories/tutorial/</link><description>Recent content in Tutorial on Visual Cinnamon</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 12 Jun 2025 11:22:06 +0200</lastBuildDate><atom:link href="https://www.visualcinnamon.com/categories/tutorial/index.xml" rel="self" type="application/rss+xml"/><item><title>Techniques for Data Visualization on both Mobile &amp; Desktop</title><link>https://www.visualcinnamon.com/2019/04/mobile-vs-desktop-dataviz/</link><pubDate>Wed, 17 Apr 2019 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2019/04/mobile-vs-desktop-dataviz/</guid><description>&lt;p&gt;For me &lt;strong&gt;making a data visualization look good and be effective on both mobile and desktop&lt;/strong&gt; is one of the most difficult aspects of my work (next to browser bugs, implementing interactivity and optimizing performance). Although there is no &amp;ldquo;one-size-fits-all&amp;rdquo; solution I have found several different options across past projects that work for me.&lt;/p&gt;</description></item><item><title>Presenting the d3.loom chart</title><link>https://www.visualcinnamon.com/2017/08/d3-loom/</link><pubDate>Tue, 01 Aug 2017 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2017/08/d3-loom/</guid><description>&lt;p&gt;In this blog I&amp;rsquo;d like to &amp;ldquo;formally&amp;rdquo; introduce and explain a new (and my first) &lt;strong&gt;d3 plugin&lt;/strong&gt; to create a chart that I&amp;rsquo;ve started calling &lt;a href="https://github.com/nbremer/d3-loom"&gt;&lt;strong&gt;the loom&lt;/strong&gt;&lt;/a&gt;. Although I was very much inclined to also call it the &lt;em&gt;butterfly&lt;/em&gt; or &lt;em&gt;labrys&lt;/em&gt;. However, I actually needed &lt;em&gt;two&lt;/em&gt; words for this plugin, so &lt;em&gt;loom&lt;/em&gt; + &lt;em&gt;strings&lt;/em&gt; made more sense overall (thanks to Mike Bostock who provided the name).&lt;/p&gt;</description></item><item><title>My Journey into Data Visualization</title><link>https://www.visualcinnamon.com/2017/03/my-journey-into-dataviz/</link><pubDate>Mon, 27 Mar 2017 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2017/03/my-journey-into-dataviz/</guid><description>&lt;p&gt;I often get emails from people asking me diverse question about my path into data visualization. And after typing out my story for the &lt;code&gt;Nth&lt;/code&gt; time I thought it might actually be easier if I just place it in a blog post. That way I can be more detailed &amp;amp; even add some images (ﾉ◕ヮ◕)ﾉ*:・ﾟ✧&lt;/p&gt;</description></item><item><title>Using gradients for abrupt color changes in data visualizations</title><link>https://www.visualcinnamon.com/2016/06/abrupt-color-gradients/</link><pubDate>Mon, 27 Jun 2016 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2016/06/abrupt-color-gradients/</guid><description>&lt;p&gt;I&amp;rsquo;ve already shown the diversity of using gradients in data visualization in several other blogs in this series. But you don&amp;rsquo;t even have to use gradients as something that runs smoothly from one color to another. They can be very handy for abrupt changes as well. The first time I ended up using this technique was when I became interested in the popularity of baby names.&lt;/p&gt;</description></item><item><title>More fun data visualizations with the gooey effect</title><link>https://www.visualcinnamon.com/2016/06/fun-data-visualizations-svg-gooey-effect/</link><pubDate>Mon, 20 Jun 2016 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2016/06/fun-data-visualizations-svg-gooey-effect/</guid><description>&lt;p&gt;Just over a year ago I posted &lt;a href="https://www.visualcinnamon.com/2015/05/gooey-effect/"&gt;a blog about the Gooey effect&lt;/a&gt; that makes it seem as if things (SVGs) start &lt;strong&gt;sticking together once they come close to each other&lt;/strong&gt;. As if they are water droplets merging together. For my preparation for the “SVGs beyond mere shapes” talk I returned to the gooey effect and in this blog I&amp;rsquo;d like to teach you a few more techniques to take full use of the power of the gooey.&lt;/p&gt;</description></item><item><title>Data-based orientations for gradients in a d3.js chord diagram</title><link>https://www.visualcinnamon.com/2016/06/orientation-gradient-d3-chord-diagram/</link><pubDate>Mon, 13 Jun 2016 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2016/06/orientation-gradient-d3-chord-diagram/</guid><description>&lt;p&gt;In this blog, I&amp;rsquo;ll show you &lt;strong&gt;how to add a color gradient to the chords of a d3.js Chord Diagram&lt;/strong&gt;. This comes in handy when there is no net difference in the chords. But you can apply the technique to any gradient that you want to orient based on data. We&amp;rsquo;re going to look at the collaborations between Avengers. With all those cameo&amp;rsquo;s happening in the MCU, I wanted to know how often two Avengers had appeared in a movie together. This results in a symmetrical dataset since, if Thor appeared in a movie together with Hawkeye, the reverse is true as well.&lt;/p&gt;</description></item><item><title>Adding a subtle touch of glow to your d3.js visualizations</title><link>https://www.visualcinnamon.com/2016/06/glow-filter-d3-visualization/</link><pubDate>Mon, 06 Jun 2016 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2016/06/glow-filter-d3-visualization/</guid><description>&lt;p&gt;Today it&amp;rsquo;s time for a short blog about a very &lt;strong&gt;subtle effect that can add a bit more pizzazz&lt;/strong&gt; to your visualization. It&amp;rsquo;s definitely not something that will suit a business/no-nonsense chart. But then again, if you only make those kinds of charts, I feel that doing data visualization is definitely less enjoyable than if you try to have some fun with your creations every now and then. So let&amp;rsquo;s start by adding a bit of glow to our shapes!&lt;/p&gt;</description></item><item><title>Data-based and unique gradients for visualizations with d3.js</title><link>https://www.visualcinnamon.com/2016/05/data-based-svg-gradient-d3/</link><pubDate>Mon, 30 May 2016 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2016/05/data-based-svg-gradient-d3/</guid><description>&lt;p&gt;In the past few weeks, several tutorials about SVG gradients in data visualizations have come to pass already. But those were mostly focusing on creating one gradient. In this tutorial, I want to show you how you can create a gradient for each of your datapoints. And how to adjust each of these gradients using some aspect of your data, so each gradient will become unique.&lt;/p&gt;</description></item><item><title>Beautiful color blending effects with SVGs &amp; d3.js</title><link>https://www.visualcinnamon.com/2016/05/beautiful-color-blending-svg-d3/</link><pubDate>Mon, 23 May 2016 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2016/05/beautiful-color-blending-svg-d3/</guid><description>&lt;p&gt;In this short tutorial I want to introduce you to those wonderful color blending modes that you have (in Photoshop for example) where two colors overlapping each other can create another color. I actually started out trying to recreate this effect with SVG filters. But then I found out that it be done with just two lines of CSS.&lt;/p&gt;</description></item><item><title>Animate a gradient to imitate a flow in a d3.js</title><link>https://www.visualcinnamon.com/2016/05/animate-gradient-imitate-flow-d3/</link><pubDate>Mon, 16 May 2016 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2016/05/animate-gradient-imitate-flow-d3/</guid><description>&lt;p&gt;We&amp;rsquo;re picking up right where I left you in my blog on &lt;a href="https://www.visualcinnamon.com/2015/08/stretched-chord/"&gt;Hacking a Chord diagram to visualize a Flow&lt;/a&gt; where I turned a Chord Diagram into a more circular flow diagram. Even with the chords now having been turned into a &amp;ldquo;bat-plot&amp;rdquo; I still wanted to emphasize more that we were dealing with a flow from left to right, from Education to Occupation. So, I thought, why not try to use a gradient and animate a movement/flow towards the right.&lt;/p&gt;</description></item><item><title>Creating real-life based motion effects in d3.js visuals</title><link>https://www.visualcinnamon.com/2016/05/real-life-motion-effects-d3-visualization/</link><pubDate>Mon, 09 May 2016 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2016/05/real-life-motion-effects-d3-visualization/</guid><description>&lt;p&gt;A filter that can create a subtle but interesting effect has to do with motion blur. &lt;strong&gt;The faster and closer to us things move in the real world, the more blurred they appear&lt;/strong&gt;. And with the right filter, you can recreate this effect on the screen as well.&lt;/p&gt;</description></item><item><title>Creating a smooth color legend with an SVG gradient</title><link>https://www.visualcinnamon.com/2016/05/smooth-color-legend-d3-svg-gradient/</link><pubDate>Mon, 02 May 2016 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2016/05/smooth-color-legend-d3-svg-gradient/</guid><description>&lt;p&gt;My first deviation from just using SVGs merely for their shapes came while trying to create a color legend. I was looking for a way to create a legend that would smoothly go from one color in my color scale to another. It wasn&amp;rsquo;t really necessary to read the exact value each color represented. It was more about seeing trends and getting a general sense of the numbers, so chopping the colors up into 5 or 6 bins wasn&amp;rsquo;t what I wanted. And that&amp;rsquo;s how I got into SVG gradients.&lt;/p&gt;</description></item><item><title>Animating (dashed) lines and paths with d3.js &amp; spirographs</title><link>https://www.visualcinnamon.com/2016/01/animating-dashed-line-d3/</link><pubDate>Mon, 25 Jan 2016 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2016/01/animating-dashed-line-d3/</guid><description>&lt;p&gt;In this blog I&amp;rsquo;ll explain how to animate both solid and dashed lines. To make things slightly less boring, I&amp;rsquo;ve &lt;strong&gt;created a spirograph drawing app&lt;/strong&gt; for the examples. It came about because last week I wanted to animate a dashed line in a chart. Trying to use the technique I always apply for solid animated lines I suddenly found out that animating a dashed line isn&amp;rsquo;t trivial. It&amp;rsquo;s because of the fact that an animated solid line is, secretly, a dashed line, but I&amp;rsquo;ll go into that later.&lt;/p&gt;</description></item><item><title>Learnings from a d3.js addict on starting with canvas</title><link>https://www.visualcinnamon.com/2015/11/learnings-from-a-d3-js-addict-on-starting-with-canvas/</link><pubDate>Mon, 16 Nov 2015 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2015/11/learnings-from-a-d3-js-addict-on-starting-with-canvas/</guid><description>&lt;p&gt;In this blog I&amp;rsquo;d like to take you through my learnings from last week when I finally started with canvas. I hope that, after reading this blog, I will have convinced you that canvas is a really good visualization option if you need better performance than d3.js can give you and that &lt;strong&gt;it&amp;rsquo;s actually not that difficult to learn canvas&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>A different look for the d3.js radar chart</title><link>https://www.visualcinnamon.com/2015/10/different-look-d3-radar-chart/</link><pubDate>Mon, 19 Oct 2015 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2015/10/different-look-d3-radar-chart/</guid><description>&lt;p&gt;A bit more than 2 years ago I wrote a small blog about &lt;a href="https://www.visualcinnamon.com/2013/09/making-d3-radar-chart-look-bit-better/"&gt;making the d3.js radar chart look a little better&lt;/a&gt;. I know that opinions are diverse about the usefulness of these types of charts. But I can&amp;rsquo;t deny that I personally have a love for circular charts. I even keep a Pinterest board specifically for circular data visualizations.&lt;/p&gt;&#10;&lt;p&gt;Since that chart in the blog from over 2 years ago I haven&amp;rsquo;t created another radar chart, until a small project came by right before the start of the summer. And apparently, it was about time for another &lt;strong&gt;redesign&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Placing text on arcs with d3.js</title><link>https://www.visualcinnamon.com/2015/09/placing-text-on-arcs/</link><pubDate>Wed, 30 Sep 2015 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2015/09/placing-text-on-arcs/</guid><description>&lt;p&gt;In this tutorial I want to go into something I&amp;rsquo;ve learned while creating a personal project called &lt;a href="http://nbremer.github.io/occupationscanvas/"&gt;&lt;em&gt;A Closer Look into the Division of Occupations &amp;amp; Age&lt;/em&gt;&lt;/a&gt;: how to place SVG text on arcs or paths. And how to combine this with d3&amp;rsquo;s existing donut-chart-like layouts.&lt;/p&gt;</description></item><item><title>Hacking a chord diagram to visualize a flow</title><link>https://www.visualcinnamon.com/2015/08/stretched-chord/</link><pubDate>Fri, 28 Aug 2015 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2015/08/stretched-chord/</guid><description>&lt;p&gt;In this blog post I&amp;rsquo;ll explain how you can hack a chord diagram to shape it into a more &lt;strong&gt;circular looking sankey-like flow chart&lt;/strong&gt;. Why not just take a regular sankey to visualize the flow? Well, the visualization was meant for use in the media to engage the viewers. Therefore, I wanted to create something visually different. In the end it appears that I just wanted to challenge myself and dive into the d3 source code (for the first time).&lt;/p&gt;</description></item><item><title>Using a d3 voronoi grid to improve a chart's interactive experience</title><link>https://www.visualcinnamon.com/2015/07/voronoi/</link><pubDate>Thu, 02 Jul 2015 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2015/07/voronoi/</guid><description>&lt;p&gt;In this tutorial, I&amp;rsquo;ll show you how you can add an invisible voronoi grid over a scatterplot which will improve the experience of the viewer when hovering over the plot. And I&amp;rsquo;ve actually updated this tutorial in August 2016 when Franck Lebeau came with a great improvement on the final step.&lt;/p&gt;</description></item><item><title>Create a “gooey effect” during transitions in d3.js</title><link>https://www.visualcinnamon.com/2015/05/gooey-effect/</link><pubDate>Sun, 31 May 2015 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2015/05/gooey-effect/</guid><description>&lt;p&gt;A short post about perhaps not a very useful, but nonetheless rather fun to watch effect in SVGs applied to d3.js: gooey effects!&lt;/p&gt;</description></item><item><title>Animating a heart shaped curve with d3.js</title><link>https://www.visualcinnamon.com/2015/02/happy-valentines-day-animating-heart/</link><pubDate>Sat, 14 Feb 2015 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2015/02/happy-valentines-day-animating-heart/</guid><description>&lt;p&gt;Just something small for Valentines day. I found the formula for a heart shaped curve on the &lt;a href="http://mathworld.wolfram.com/HeartCurve.html"&gt;Wolfram website&lt;/a&gt; and wanted to animate the line that draws these points with d3.js.&lt;/p&gt;</description></item><item><title>How to create a hexagonal heatmap in R</title><link>https://www.visualcinnamon.com/2013/11/how-to-create-hexagonal-heatmap-in-r/</link><pubDate>Wed, 13 Nov 2013 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2013/11/how-to-create-hexagonal-heatmap-in-r/</guid><description>&lt;p&gt;Like I wrote in one of my previous posts on &lt;a href="https://www.visualcinnamon.com/2013/07/on-creation-of-extended-self-organizing/"&gt;the creation of a &amp;ldquo;self organizing map&amp;rdquo; program in R&lt;/a&gt;, I really wanted the results of a SOM visualized in a hexagonal heatmap, so I wrote my own piece of code for it.&lt;/p&gt;</description></item><item><title>Making the d3.js radar chart look a bit better</title><link>https://www.visualcinnamon.com/2013/09/making-d3-radar-chart-look-bit-better/</link><pubDate>Tue, 10 Sep 2013 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2013/09/making-d3-radar-chart-look-bit-better/</guid><description>&lt;p&gt;The last few weeks I&amp;rsquo;ve been spending some of my time on creating several visualizations of the data from a Global Mobile Consumer Survey that my company, Deloitte, performed during the spring. The results are being analysed right now and will eventually be published. I was given a free reign on what those illustrations should be, as long as they looked &lt;em&gt;cool&lt;/em&gt; and would engage the reader. Well, what better opportunity to play around some of the more exotic d3 graphs and get paid for it!&lt;/p&gt;</description></item><item><title>Adding boundaries inside a hexagonal heatmap with d3.js</title><link>https://www.visualcinnamon.com/2013/07/self-organizing-maps-adding-boundaries/</link><pubDate>Tue, 23 Jul 2013 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2013/07/self-organizing-maps-adding-boundaries/</guid><description>&lt;p&gt;In the &lt;a href="https://www.visualcinnamon.com/2013/07/self-organizing-maps-creating-hexagonal/"&gt;previous post&lt;/a&gt; I explained how to create a hexagonal heatmap. For example to use as output for a &lt;strong&gt;self organizing map&lt;/strong&gt;. I like to create rather large maps with a lot of hexagons if I have enough data. It gives the idea of a high &lt;em&gt;resolution&lt;/em&gt;. In that case it&amp;rsquo;s very useful to divide the entire map into a manageable number of higher level segments.&lt;/p&gt;</description></item><item><title>Creating hexagonal heatmaps with d3.js</title><link>https://www.visualcinnamon.com/2013/07/self-organizing-maps-creating-hexagonal/</link><pubDate>Mon, 22 Jul 2013 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2013/07/self-organizing-maps-creating-hexagonal/</guid><description>&lt;p&gt;In my &lt;a href="https://www.visualcinnamon.com/2013/07/on-creation-of-extended-self-organizing/"&gt;previous post&lt;/a&gt; I spoke a bit about a program I wrote in R that helps me perform &lt;strong&gt;self organizing map&lt;/strong&gt; (SOM) analyses and create heatmaps. From the cleaned data file all the way to the visualization and analysis of the heatmaps.&lt;/p&gt;</description></item><item><title>Plotting survival analysis results in R with ggplot2</title><link>https://www.visualcinnamon.com/2013/07/plotting-survival-analysis-results-in-r/</link><pubDate>Sun, 14 Jul 2013 00:00:00 +0000</pubDate><guid>https://www.visualcinnamon.com/2013/07/plotting-survival-analysis-results-in-r/</guid><description>&lt;p&gt;Even though R has been my favorite language to program in since a few months, one thing it is not designed to do is make your plots look anywhere near good. With this I mean that those plots are not the stuff I can just save and put into a client presentation.&lt;/p&gt;</description></item></channel></rss>