<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Visualmotive Blog</title>
	
	<link>http://blog.visualmotive.com</link>
	<description>Thoughts on maps and visualization</description>
	<lastBuildDate>Wed, 04 Nov 2009 20:07:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/visualmotive" type="application/rss+xml" /><feedburner:emailServiceId>visualmotive</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Introducing Cartographer.js</title>
		<link>http://feedproxy.google.com/~r/visualmotive/~3/tjuVJPDWXmg/</link>
		<comments>http://blog.visualmotive.com/2009/introducing-cartographerjs/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 11:42:54 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Maps]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=251</guid>
		<description><![CDATA[Thematic maps  describe statistical data about places. They come in many flavors: color-coded regions, area-scaled circles, pie charts, flow charts, heatmaps, and so on. By aligning statistical data to a geographic anchor, the underlying data can be made easier to understand.
The problem
It is difficult to build thematic maps for the web using standard HTML [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_262" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/10/cartographer.png"><img class="size-medium wp-image-262" title="Cartographer.js Examples" src="http://blog.visualmotive.com/wp-content/uploads/2009/10/cartographer-640x106.png" alt="Cartographer.js screenshots: chloropleth, area-scaled circles, and pie charts" width="640" height="106" /></a><p class="wp-caption-text">Cartographer.js screenshots: choropleth, area-scaled circles, and pie charts</p></div>
<p>Thematic maps  describe statistical data about places. They come in many flavors: color-coded regions, area-scaled circles, pie charts, flow charts, heatmaps, and so on. By aligning statistical data to a geographic anchor, the underlying data can be made easier to understand.</p>
<h3>The problem</h3>
<p>It is difficult to build thematic maps for the web using standard HTML and Javascript. In the few maps that do exist, developers are re-creating basic thematic elements or using sub-standard visualization techniques. In particular, &#8220;red dot fever&#8221;—the ubiquitous red pushpins on Google Maps.</p>
<h3>Our solution</h3>
<p><a href="http://cartographer.visualmotive.com">Cartographer.js</a>, a simple library for Google Maps that simplifies the development process and provides instant access to proven visualization techniques. Developers are freed from worrying about how to tweak the Google Maps API to build the thematic elements they need, and can focus on more important problems like data collection and normalization. Cartographer.js supports custom styling so it can integrate seamlessly into existing web applications.</p>
<h3>Why HTML + Javascript?</h3>
<p>Cartographer.js is built to leverage cutting-edge web technologies. Other formats, like Flash or Processing (Java Applet), are not supported on many mobile devices, and many developers are already familiar with HTML + JS. Also, many recent advances in the power and speed of Javascript (cf. V8) make it more desirable to build rich web applications in pure HTML + JS. We feel there is a very strong future for this set of technologies.</p>
<h3>How do I use it?</h3>
<p>Cartographer.js is a simple one-line include. It relies on the excellent <a href="http://raphaeljs.com/">Raphael.js</a> vector-graphics library. Cartographer.js is currently in an early-stage Alpha release.</p>
<p>You can find out more by visiting the <a href="http://cartographer.visualmotive.com/">Cartographer.js website</a>, where you can download the script, see examples, and read through the documentation.</p>
<p><a href="http://cartographer.visualmotive.com"><img class="alignnone" title="Cartographer.js Logo" src="http://cartographer.visualmotive.com/img/cartographer_153x55_b.png" alt="" width="153" height="55" /></a></p>
<p>Your feedback is greatly appreciated!</p>
<img src="http://feeds.feedburner.com/~r/visualmotive/~4/tjuVJPDWXmg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/introducing-cartographerjs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.visualmotive.com/2009/introducing-cartographerjs/</feedburner:origLink></item>
		<item>
		<title>Walk or Bus?</title>
		<link>http://feedproxy.google.com/~r/visualmotive/~3/pCNcS1lW6og/</link>
		<comments>http://blog.visualmotive.com/2009/walk-or-bus/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 11:06:13 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[transit]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=237</guid>
		<description><![CDATA[It is intuitive that when you have a short distance to travel it is always faster to walk than wait around for a bus. But exactly how long should you wait? We decided to do some calculations to find out.
Click here to see Walk or Bus? and discover for yourself how long you should be [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_238" class="wp-caption alignnone" style="width: 610px"><a href="http://visualmotive.com/walk-or-bus/"><img class="size-full wp-image-238 " title="buswalk_screen" src="http://blog.visualmotive.com/wp-content/uploads/2009/09/buswalk_screen.jpg" alt="Should you walk or take the bus?" width="600" height="183" /></a><p class="wp-caption-text">Should you walk or take the bus?</p></div>
<p>It is intuitive that when you have a short distance to travel it is always faster to walk than wait around for a bus. But <em>exactly</em> how long should you wait? We decided to do some calculations to find out.</p>
<p>Click <a href="http://visualmotive.com/walk-or-bus/">here</a> to see <em>Walk or Bus? </em>and discover for yourself how long you should be willing to wait for a bus.</p>
<p>If you remember this rule of thumb you ought to get along just fine:</p>
<blockquote><p>If you have N blocks to travel, you should only wait for the bus if it is less than N minutes away.</p></blockquote>
<p>Of course, if you have a bike, you should probably use that instead. <img src='http://blog.visualmotive.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Feel free to leave your questions or comments.</p>
<p>Link: <a href="http://visualmotive.com/walk-or-bus/">Walk or Bus?</a></p>
<img src="http://feeds.feedburner.com/~r/visualmotive/~4/pCNcS1lW6og" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/walk-or-bus/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://blog.visualmotive.com/2009/walk-or-bus/</feedburner:origLink></item>
		<item>
		<title>The Ebstorf Mappamundi – map of the 13th c. Christian World</title>
		<link>http://feedproxy.google.com/~r/visualmotive/~3/N9ffKbGrYV0/</link>
		<comments>http://blog.visualmotive.com/2009/ebstorf-mappamundi/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 19:04:04 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Maps]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[medieval map]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=225</guid>
		<description><![CDATA[The Ebstorf mappamundi was drawn in 13th century Saxony and depicts the Christian worldview within the body of a crucified Christ. The map illustrates both the &#8220;known world&#8221; as well as significant landmarks and points of interest for the curious pilgrim.
Christ&#8217;s head is in the East, at the top of the map, the direction of [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_230" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/09/ebstorfer-mappamundi.jpg"><img class="size-medium wp-image-230" title="ebstorfer-mappamundi" src="http://blog.visualmotive.com/wp-content/uploads/2009/09/ebstorfer-mappamundi-640x639.jpg" alt="The Ebstorfer mappamundi, map of the Christian World in the 13th century overlaid with an image of Christ. (click for high resolution)" width="640" height="639" /></a><p class="wp-caption-text">The Ebstorfer mappamundi, map of the Christian World in the 13th century overlaid with an image of Christ. (click for high resolution)</p></div>
<p>The Ebstorf <em>mappamundi</em> was drawn in 13th century Saxony and depicts the Christian worldview within the body of a crucified Christ. The map illustrates both the &#8220;known world&#8221; as well as significant landmarks and points of interest for the curious pilgrim.</p>
<p>Christ&#8217;s head is in the East, at the top of the map, the direction of Paradise. His hands mark the northern and southern limits of the known world, and his feet are at Gibraltar where the Mediterranean meets the Atlantic. In the middle of the map we see Jerusalem, the spiritual center of Christendom, located at Christ&#8217;s navel. Europe is in the bottom left quadrant of the map, Africa in the bottom right, and Asia dominates the upper half.</p>
<p>In the East, near Christ&#8217;s head, is the Garden of Eden surrounded by mountains. Just west are the Chinese (note the two figures bent to gather silk) and the Indians. In the Indus Valley we see opium eaters, people who stare at the sun all day (gymnosophists), as well as that strange tribe who subsists only on the scent of apples. Alexander the Great is consulting the Oracle of the Sun and the Moon.</p>
<div id="attachment_231" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/09/ebstorfer_zoom_india_sinai.jpg"><img class="size-medium wp-image-231" title="ebstorfer_zoom_india_sinai" src="http://blog.visualmotive.com/wp-content/uploads/2009/09/ebstorfer_zoom_india_sinai-640x250.jpg" alt="Details from the Ebstorfer Mappamundi. Left: Places in India, including Alexander the Great consulting the Oracle, the Opium Eaters in their poppy field, and a gymnosophist staring at the sun. Right: Mt. Sinai (oriented sideways), and Sodom and Gommorah covered by the Dead Sea.  " width="640" height="250" /></a><p class="wp-caption-text">Details from the Ebstorfer Mappamundi. Left: Places in India, including Alexander the Great consulting the Oracle, the Opium Eaters in their poppy field, and a gymnosophist staring at the sun. Right: Mt. Sinai (oriented sideways), and Sodom and Gommorah covered by the Dead Sea.  </p></div>
<p>At the center of the map, near the all-important Jersulaem, we can find the Tower of Babel, Bethlehem (marked with the Star of David), Sodom and Gomorrah, and Mt. Sinai.</p>
<p>Africa and northern Asia both are hinterlands illustrated with mythical creatures and legends. In Africa, a tribe of dwarfs rides crocodiles. In Asia, two Amazonian women guard their citadel.</p>
<p>Maps such as this may explain much of the surprise 15th and 16th century explorers felt as they sailed to the Americas and around the Cape of Good Hope. Africa was much bigger than this map indicates, and the invisible Americas were very much in the way of a direct sea route to India. We know that the ancient Greeks had discovered that the world was round, and circa 1400 AD Ptolemy had produced an accurate map of Europe and Asia based on a spherical Earth. But the Ebstorf map follows the Roman tradition of placing landmarks in relative positions, maintaining basic order and structure but not following rules for measurements or Cartesian accuracy. And the <a href="http://en.wikipedia.org/wiki/T_and_O_map" target="_blank">T-O structure</a> of this map—the base of the T was the Mediterranean, the cross was at Jersualem; the O formed the surrounding oceans—was an idealized depiction of the world that was all too common in the late medieval era.</p>
<p>Despite its shortcomings as a navigational aid, the Ebstorf mappamundi is a beautiful map. It is both a sacred object glorifying the Body of Christ and also a tourist map of the strange and wonderful places that formed the background of medieval storytelling.</p>
<p>References:</p>
<ul>
<li><a href="http://books.google.com/books?id=W34-yRa8ksUC&amp;dq=art+and+cartography&amp;printsec=frontcover&amp;source=bn&amp;hl=en&amp;ei=jMC7Ss5Bk7GUB625kagN&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=4#v=onepage&amp;q=&amp;f=false" target="_blank">Art and Cartography</a> by David Woodward</li>
<li><a href="http://www.henry-davis.com/MAPS/EMwebpages/224mono.html" target="_blank">The Ebstorf Mappamundi</a> by J. Siebold</li>
</ul>
<img src="http://feeds.feedburner.com/~r/visualmotive/~4/N9ffKbGrYV0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/ebstorf-mappamundi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.visualmotive.com/2009/ebstorf-mappamundi/</feedburner:origLink></item>
		<item>
		<title>Area Scaled Map from 1930 – Markets are People</title>
		<link>http://feedproxy.google.com/~r/visualmotive/~3/3EznMzcW4Wk/</link>
		<comments>http://blog.visualmotive.com/2009/area-scaled-map-from-1930-markets-are-people/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 10:00:31 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Maps]]></category>
		<category><![CDATA[map]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=219</guid>
		<description><![CDATA[&#8220;Markets are People&#8221; is a beautifully drawn map. It uses area-distortion to show population at both the state and city level. This is the first map we have seen that uses the area-distortion method at two resolutions. The effect is visually accurate, highly readable, and offers deeper insight into the data than similar maps that [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_220" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/09/markest_are_people.jpg"><img class="size-medium wp-image-220" title="markest_are_people" src="http://blog.visualmotive.com/wp-content/uploads/2009/09/markest_are_people-640x436.jpg" alt="Markets are People, published 1930 by Printer's Ink" width="640" height="436" /></a><p class="wp-caption-text">Markets are People, published 1930 by Printer&#39;s Ink</p></div>
<p>&#8220;Markets are People&#8221; is a beautifully drawn map. It uses area-distortion to show population at <em>both</em> the state and city level. This is the first map we have seen that uses the area-distortion method at two resolutions. The effect is visually accurate, highly readable, and offers deeper insight into the data than similar maps that offer only one level of detail. (For comparison, look at <a href="http://en.wikipedia.org/wiki/Cartogram">modern cartograms</a> on Wikipedia.)</p>
<p>Notice how easy it is, for example, to estimate the percentage of urban population in any given state: Illinois is about 50% urban. Relative sizes of cities are also easy to estimate.</p>
<p>This map was found in <em>Graphic Presentation</em>, published in 1939 by Willard C. Brinton, p. 242. The caption under the map reads:</p>
<blockquote><p>Printer&#8217;s Ink Publishing Co., Inc. Chart by Walter P. Burns and Associates, Inc. New York City.</p>
<p><em>A Distorted Map of the United States Showing Population of Each State and Cities of 50,000 or More in 1930. </em></p>
<p>The presentation of cities whose areas are proportional to their population is the outstanding feature of this map.</p></blockquote>
<p>The entirety of <em>Graphic Presentation</em> is worth exploring. It covers a full range of topics from color theory to line graphs and &#8220;quantitative cartoons&#8221;. The book is out of print, but we found a wonderful leather-bound copy at the university library. A <a href="http://www.archive.org/details/graphicpresentat00brinrich">PDF of the full text</a> is also available.</p>
<p>Thanks to <a href="http://www.datavisualization.ch/showcases/graphic-presentation-by-willard-cope-brinton">Datavisualization.ch</a> and <a href="http://flowingdata.com/2009/09/11/vintage-infographics-from-the-1930s/">Flowing Data</a> for pointing us to this book.</p>
<img src="http://feeds.feedburner.com/~r/visualmotive/~4/3EznMzcW4Wk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/area-scaled-map-from-1930-markets-are-people/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.visualmotive.com/2009/area-scaled-map-from-1930-markets-are-people/</feedburner:origLink></item>
		<item>
		<title>Sorting Colors</title>
		<link>http://feedproxy.google.com/~r/visualmotive/~3/LDchEpgHlZM/</link>
		<comments>http://blog.visualmotive.com/2009/sorting-colors/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 12:00:04 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=206</guid>
		<description><![CDATA[We recently needed to sort the pixels in an image by their color. On first attempt, we sorted by simple RGB values: first sort on R, then on G, then B. But it turns out there are many other possibilities for sorting colors. Every permutation of the RGB letters could be considered (RBG, GBR, GRB, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_214" class="wp-caption alignnone" style="width: 650px"><a href="http://visualmotive.com/colorsort/"><img class="size-full wp-image-214 " title="colorsort" src="http://blog.visualmotive.com/wp-content/uploads/2009/09/colorsort1.jpg" alt="Color sorting using RGB, HSV, and YIQ color spaces" width="640" height="210" /></a><p class="wp-caption-text">Color sorting using RGB, HSV, and YIQ color spaces</p></div>
<p>We recently needed to sort the pixels in an image by their color. On first attempt, we sorted by simple <a href="http://en.wikipedia.org/wiki/Rgb">RGB</a> values: first sort on R, then on G, then B. But it turns out there are many other possibilities for sorting colors. Every permutation of the RGB letters could be considered (RBG, GBR, GRB, etc.), not to mention other color systems <a href="http://en.wikipedia.org/wiki/HSL_and_HSV">HSV</a> and <a href="http://en.wikipedia.org/wiki/YIQ">YIQ</a>.</p>
<p>To see all the color sorting possibilities, we wrote a Python script to try every permutation against a common set of source images.  <a href="http://visualmotive.com/colorsort/">Click here to see every color sorting option</a>. Note that we use a Hilbert curve in the top set of images to provide better grouping of similar color values. The bottom set of images is linear and wrapped: left to right, then top to bottom.</p>
<p>Our goal was to find a sorting mechanism that looked pleasing to the eye, but of course the results are completely subjective.</p>
<ul>
<li>For aesthetics, we prefer the YIQ sort. It highlights trends in value change, but information about hue variation is hidden and sometimes invisible.</li>
<li>To communicate more information about hues, HSV sorting is by far superior, but it lacks the pleasant gradient-effect of the YIQ sort.</li>
<li>RGB sorting proves inferior to HSV and YIQ, though the results can still be interesting.</li>
</ul>
<p>Also worth noting: HSV sort is excellent for grouping colors of similar hues, but the IYQ and YIQ sorts also do this well and they can look cleaner than their HSV counterpart.</p>
<p>(with thanks to Steve Witham for his <a href="http://www.tiac.net/~sw/2008/10/Hilbert/">Hilbert curves in Python</a>.)</p>
<img src="http://feeds.feedburner.com/~r/visualmotive/~4/LDchEpgHlZM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/sorting-colors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.visualmotive.com/2009/sorting-colors/</feedburner:origLink></item>
		<item>
		<title>Graph Visualization with Edge Bundling</title>
		<link>http://feedproxy.google.com/~r/visualmotive/~3/oqDRgr2XTgY/</link>
		<comments>http://blog.visualmotive.com/2009/graph-visualization-edge-bundling/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 12:00:02 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[graph]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=186</guid>
		<description><![CDATA[We recently encountered (via infosthetics) a paper from Danny Holten and Jarke J. van Wijk that demonstrates an algorithm for creating beautiful graph visualizations. The original paper is Force-Directed Edge Bundling for Graph Visualization, published in 2009.
In computer science theory, a graph is a collection of nodes and the edges between them. Graphs are useful [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_187" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/07/graph_usairways_bundled.jpg"><img class="size-medium wp-image-187" title="graph_usairways_bundled" src="http://blog.visualmotive.com/wp-content/uploads/2009/07/graph_usairways_bundled-640x294.jpg" alt="US air transit routes after bundling algorithm was applied" width="640" height="294" /></a><p class="wp-caption-text">Diagram of US airways using Holten and van Wijk&#39;s bundling algorithm</p></div>
<p>We recently encountered (via <a href="http://infosthetics.com/archives/2009/06/force_directed_edge_bundling_for_graph_visualization.html">infosthetics</a>) a paper from Danny Holten and Jarke J. van Wijk that demonstrates an algorithm for creating beautiful graph visualizations. The original paper is <a href="http://www.win.tue.nl/~dholten/papers/forcebundles_eurovis.pdf">Force-Directed Edge Bundling for Graph Visualization</a>, published in 2009.</p>
<p>In computer science theory, a graph is a collection of nodes and the edges between them. Graphs are useful abstractions for describing transit networks, computer networks, and relationships among people (such as in a social network). Over the years mathematicians and theorists have discovered that there are hundreds of additional problem types that can be rewritten as graph theory problems. So, understanding and visualizing graphs is important for a large number of problem domains.</p>
<p>While there are many ways to represent a graph visually, the most intuitive is to draw a set of points (nodes) with lines (edges) connecting them. The goal, of course, is to make the visualization intuitive to understand for a human observer. The visualization should be functionally readable, aesthetically appealing, and ideally should allow an observer to glean interesting information about the graph&#8217;s structure. For larger graphs, several issues regarding visualization immediately present themselves. First, nodes must be laid out such that they to not interfere with one another. Edges should be drawn so that they can be distinguished from one another, with minimal crossing, but should also connect two nodes with the shortest line possible and minimal curvature. Node size and edge thickness become important, and either nodes or edges are connected to real-world space, they should be placed in some analogous fashion.</p>
<div id="attachment_188" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/07/graph_usairways_unbundled.jpg"><img class="size-medium wp-image-188" title="graph_usairways_unbundled" src="http://blog.visualmotive.com/wp-content/uploads/2009/07/graph_usairways_unbundled-640x291.jpg" alt="Unprocessed visualization of a graph depicting US airways" width="640" height="291" /></a><p class="wp-caption-text">Unprocessed visualization of a graph representing major US airways</p></div>
<p>Holten and van Wijk have introduced several novel ideas to graph visualization theory. Their main contribution is the grouping of similar edges using a clustering technique. Edges become flexible springs that can attract and repel one another. While other researchers have proposed edge-bundling techniques, Holten and van Wijk&#8217;s algorithm uses a &#8220;self-organizing&#8221; approach that does not require additional information in the form of control hierarchies or meshes as did previously published algorithms. By transforming the edges into springs, they are able to leverage existing algorithmic techniques for modeling real world systems.<span id="more-186"></span></p>
<h3>Algorithm</h3>
<p>Each edge is modeled as a spring, and a number of control points are placed along each edge. Each control point on a spring-edge is compared with its corresponding control point on every other edge that interacts with this edge. A global spring constant is used to inform localized (edge-specific) spring constants, and this determines the &#8220;stiffness&#8221; of the resulting diagram. Over many iterations, each control point is moved slightly according to the sum of all forces acting upon it. As control points move, they inform subsequent iterations and alter the forces acting on other edges in the graph. The number of control points is increased for later iterations to provide greater edge smoothing.</p>
<p>The authors discovered that this basic algorithm resulted in too much bundling. They therefore introduce several edge-compatibility measures that are used to adjust the forces acting between any two control points. Edges should exhibit greater bundling tendencies if they:</p>
<ol>
<li>are parallel rather than perpendicular</li>
<li>are of similar lengths</li>
<li>are proximate in space</li>
<li>have similar &#8220;bands of sight&#8221; (such that the edges of a skewed parallelogram would not be considered candidates for bundling).</li>
</ol>
<p>Additional anti-aliasing was performed on the final output to increase overall smoothing. The resulting graph diagrams are beautiful and very readable.</p>
<img src="http://feeds.feedburner.com/~r/visualmotive/~4/oqDRgr2XTgY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/graph-visualization-edge-bundling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.visualmotive.com/2009/graph-visualization-edge-bundling/</feedburner:origLink></item>
		<item>
		<title>Visualizing Radiohead’s Kid A</title>
		<link>http://feedproxy.google.com/~r/visualmotive/~3/A42PaAs1z_M/</link>
		<comments>http://blog.visualmotive.com/2009/visualizing-radioheads-kid-a/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 12:00:46 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[radiohead]]></category>
		<category><![CDATA[Visualization]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=168</guid>
		<description><![CDATA[Visualizations show relative pitch strength across the duration of the song. Colors scheme is derived from the Kid A album cover. Song analysis by Echo Nest via the Echo Nest Remix toolkit. Rendering was done with PyCairo.
]]></description>
			<content:encoded><![CDATA[<div id="attachment_169" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_01_everything.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_01_everything-640x80.png" alt="Everything In Its Right Place" title="kid_a_01_everything" width="640" height="80" class="size-medium wp-image-169" /></a><p class="wp-caption-text">Everything In Its Right Place</p></div>
<div id="attachment_170" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_02_kid_a.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_02_kid_a-640x80.png" alt="Kid A" title="kid_a_02_kid_a" width="640" height="80" class="size-medium wp-image-170" /></a><p class="wp-caption-text">Kid A</p></div>
<div id="attachment_171" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_03_national_anthem.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_03_national_anthem-640x80.png" alt="National Anthem" title="kid_a_03_national_anthem" width="640" height="80" class="size-medium wp-image-171" /></a><p class="wp-caption-text">National Anthem</p></div>
<div id="attachment_172" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_04_disappear.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_04_disappear-640x80.png" alt="How To Disappear Completely" title="kid_a_04_disappear" width="640" height="80" class="size-medium wp-image-172" /></a><p class="wp-caption-text">How To Disappear Completely</p></div>
<div id="attachment_173" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_05_treefingers.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_05_treefingers-640x80.png" alt="Treefingers" title="kid_a_05_treefingers" width="640" height="80" class="size-medium wp-image-173" /></a><p class="wp-caption-text">Treefingers</p></div>
<div id="attachment_174" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_06_optimistic.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_06_optimistic-640x80.png" alt="Optimistic" title="kid_a_06_optimistic" width="640" height="80" class="size-medium wp-image-174" /></a><p class="wp-caption-text">Optimistic</p></div>
<div id="attachment_175" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_07_limbo.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_07_limbo-640x80.png" alt="In Limbo" title="kid_a_07_limbo" width="640" height="80" class="size-medium wp-image-175" /></a><p class="wp-caption-text">In Limbo</p></div>
<div id="attachment_176" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_08_idioteque.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_08_idioteque-640x80.png" alt="Idioteque" title="kid_a_08_idioteque" width="640" height="80" class="size-medium wp-image-176" /></a><p class="wp-caption-text">Idioteque</p></div>
<div id="attachment_177" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_09_morning_bell.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_09_morning_bell-640x80.png" alt="Morning Bell" title="kid_a_09_morning_bell" width="640" height="80" class="size-medium wp-image-177" /></a><p class="wp-caption-text">Morning Bell</p></div>
<div id="attachment_178" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_10_motion_picture.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_10_motion_picture-640x80.png" alt="Motion Picture Soundtrack" title="kid_a_10_motion_picture" width="640" height="80" class="size-medium wp-image-178" /></a><p class="wp-caption-text">Motion Picture Soundtrack</p></div>
<p>Visualizations show relative pitch strength across the duration of the song. Colors scheme is derived from the <em>Kid A</em> album cover. Song analysis by <a href="http://echonest.com">Echo Nest</a> via the <a href="http://code.google.com/p/echo-nest-remix/">Echo Nest Remix</a> toolkit. Rendering was done with <a href="http://cairographics.org/pycairo/">PyCairo</a>.</p>
<img src="http://feeds.feedburner.com/~r/visualmotive/~4/A42PaAs1z_M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/visualizing-radioheads-kid-a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.visualmotive.com/2009/visualizing-radioheads-kid-a/</feedburner:origLink></item>
		<item>
		<title>Tweemap – Mapping Twitter Followers</title>
		<link>http://feedproxy.google.com/~r/visualmotive/~3/hypP7SEiIU0/</link>
		<comments>http://blog.visualmotive.com/2009/tweemap-mapping-twitter-followers/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 12:00:12 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Maps]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=152</guid>
		<description><![CDATA[Loading&#8230;
We built a tool to map your Twitter followers. It&#8217;s called Tweemap.

It is still a little rough around the edges, but the service is very functional. Tweemap shows up to 10,000 followers for any given user. The Google Maps Javascript API provides core mapping utilities, and the Twittervision API was used for geocoding. 
How it [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption"><iframe width="640" height="360" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" src="http://tweemap.com/embed/cmueller/640/360/">Loading&#8230;</iframe></div>
<p>We built a <a href="http://tweemap.com">tool to map your Twitter followers</a>. It&#8217;s called Tweemap.<br />
<span id="more-152"></span><br />
It is still a little rough around the edges, but the service is very functional. Tweemap shows up to 10,000 followers for any given user. The Google Maps Javascript API provides core mapping utilities, and the Twittervision API was used for geocoding. </p>
<h3>How it works</h3>
<p>The main problem we encounter building Javascript maps is performance. Javascript is getting faster and better all the time, but compared to a desktop mapping solution, or even to Flash, it is quite slow and requires a delicate touch. Our approach was to use a series of aggregation techniques to group similar data points and thereby limit the amount of rendering required by the browser. </p>
<p>When geolocating Twitter users, we group them based on latitude/longitude coordinates. These point groups (PGroups) definitely contribute to efficiency. For example, we are able all users&mdash;potentially hundreds or thousands&mdash;in a major cities as an individual entity. PGroups are fed into a larger point collection (PCollection) class, which manages the groups and renders graphics onto the map.</p>
<p>At each zoom level, the PCollection builds a uniform grid across the surface of the map. Grid cells maintain a constant pixel width and represent a &#8220;square&#8221; of lat/lon coordinates. Each PGroup that is visible within the current map viewport&mdash;any not within the viewport is temporarily discarded&mdash;is placed into its corresponding grid cell. The grid is passed to the PCollection&#8217;s render() method, which creates and places circles on the map to represent the total count of followers in that cell. If the map is moved, the grid is extended in the appropriate directions, and PGroups are likewise placed into the new sections of the grid. By merely extending the grid, rather than recreating it, we can cache any existing icons and save a full redraw cycle, while at the same time preventing the map from going temporarily blank. </p>
<p>Icons are scaled against other icons in the viewport, so smaller icons become larger when they are the only icons in view. We also cap the max icon size so that circles don&#8217;t become so cluttered as to make the map unreadable.</p>
<p>We had considered using CloudMade&#8217;s custom map tiles for this map, but having run into several issues with their map style editor, we resorted to Google and its powerful API. One thing we didn&#8217;t like about Google&#8217;s maps is that at higher zoom levels it became very difficult to see our circles against the backdrop of Google&#8217;s imagery. To solve this problem, we created a new Google Maps layer that sits atop the standard layers to darken the map and make our icons visible. This new map layer is quite dumb, for every tile it serves a static PNG with limited transparency. This kind of layer can be created as follows: </p>
<pre>var modLayer = new GTileLayer( new GCopyrightCollection(""), 0, 15 );
modLayer.getTileUrl = function( tile, zoom ) {
    return image_root + "mod.png"; // a darkened, semi-transparent PNG
}
modLayer.isPng = function() { return true; }

// group the new "darkened" layer with the terrain map
var layerTerMod = [ G_PHYSICAL_MAP.getTileLayers()[0], modLayer ];
var mtTerMod = new GMapType( layerTerMod, G_PHYSICAL_MAP.getProjection(), "Dark" );

// add the darkened map type to the map
map.addMapType( mtTerMod );
map.setMapType( mtTerMod );
</pre>
<p>We have not compressed the Javascript source for this project with the hope that it might be useful to someone else. Feel free to dig around.</p>
<p>Now, have a look at <a href="http://tweemap.com">Tweemap</a>.</p>
<img src="http://feeds.feedburner.com/~r/visualmotive/~4/hypP7SEiIU0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/tweemap-mapping-twitter-followers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.visualmotive.com/2009/tweemap-mapping-twitter-followers/</feedburner:origLink></item>
		<item>
		<title>Steve Reich, Pulses</title>
		<link>http://feedproxy.google.com/~r/visualmotive/~3/lqu1HJ6qhSs/</link>
		<comments>http://blog.visualmotive.com/2009/steve-reich-pulses/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 12:00:30 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[minimalism]]></category>
		<category><![CDATA[reich]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=147</guid>
		<description><![CDATA[Steve Reich&#8217;s Music for 18 Musicians. The first section, &#8220;Pulses&#8221; is visualized above using custom Python scripts. Analysis of the music is provided by the Echo Nest API.

See also, Song Visualizations with Echo Nest.
]]></description>
			<content:encoded><![CDATA[<div id="attachment_148" class="wp-caption alignnone" style="width: 650px"><img class="size-medium wp-image-148" title="reich_pulses" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/reich_pulses-640x320.png" alt="Steve Reich - &quot;Pulses&quot;, visualized with Python and the Echo Nest API" width="640" height="320" /><p class="wp-caption-text">Steve Reich - &quot;Pulses&quot;</p></div>
<p>Steve Reich&#8217;s <em>Music for 18 Musicians</em>. The first section, &#8220;Pulses&#8221; is visualized above using custom Python scripts. Analysis of the music is provided by the Echo Nest API.</p>
<p></p>
<p>See also, <a href="http://blog.visualmotive.com/2009/song-visualizations-echo-nest/">Song Visualizations with Echo Nest</a>.</p>
<img src="http://feeds.feedburner.com/~r/visualmotive/~4/lqu1HJ6qhSs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/steve-reich-pulses/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://www.digischool.nl/ckv1/studiew/dubbelgangers/reich/reich.mp3" length="5811323" type="audio/x-mpeg3" />
		<feedburner:origLink>http://blog.visualmotive.com/2009/steve-reich-pulses/</feedburner:origLink></item>
		<item>
		<title>Jason Salavon</title>
		<link>http://feedproxy.google.com/~r/visualmotive/~3/jRMqXQodKJk/</link>
		<comments>http://blog.visualmotive.com/2009/jason-salavon/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 12:00:57 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[salavon]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=136</guid>
		<description><![CDATA[We find the work of Jason Salavon highly inspirational. At the intersection of art and visualization, his images are distinctive for their surface and immediate graphical language while also communicating significant stories of process and history.
By merging dozens or hundreds images that share some common theme, Salavon helps us extract high-level information about common form, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_137" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/03/salavon_house_series.jpg"><img class="size-medium wp-image-137" title="salavon_house_series" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/salavon_house_series-640x337.jpg" alt="salavon_house_series" width="640" height="337" /></a><p class="wp-caption-text">Salavon&#39;s photograph series Homes for Sale. Clockwise, from top left: Seattle, Miami, Los Angeles, New York City, Dallas, Chicago.</p></div>
<p>We find the work of Jason Salavon highly inspirational. At the intersection of art and visualization, his images are distinctive for their surface and immediate graphical language while also communicating significant stories of process and history.</p>
<p>By merging dozens or hundreds images that share some common theme, Salavon helps us extract high-level information about common form, texture, and color. The details are sacrificed, but we gain understanding of patterns inherent in the larger series.</p>
<p>In the <em>Homes for Sale</em> s images, aggregation is done by place and time. The photographs, all from 2002, were taken by realtors. We might expect different results in different cities, years, or seasons. As it is, we can see the green grass of Dallas contrasting with the yellow lawns in Chicago, and the blue skies of Miama and Los Angeles stand out against the gray atmospheres in Seattle and New York.</p>
<div id="attachment_140" class="wp-caption alignnone" style="width: 650px"><img class="size-medium wp-image-140" title="salavon_playboy_centerfolds" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/salavon_playboy_centerfolds-640x328.jpg" alt="Every Playboy centerfold, by decade. From the left: 1960s, 1970s, 1980s, 1990s." width="640" height="328" /><p class="wp-caption-text">Every Playboy centerfold, by decade. From the left: 1960s, 1970s, 1980s, 1990s.</p></div>
<p>In the <em>Playboy</em> series, aggregation is achieved by limiting the kind of image (only centerfolds) and differentiating by decade. We see artifacts of culture in composition and colors, warm to cool, with lighter skin and hair emphasized in later decades.</p>
<div id="attachment_138" class="wp-caption alignnone" style="width: 650px"><img class="size-medium wp-image-138" title="sugimoto_theater" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/sugimoto_theater-640x493.jpg" alt="Hiroshi Sugimoto, Akron Civic Theater, Ohio (1980)" width="640" height="493" /><p class="wp-caption-text">Hiroshi Sugimoto, Akron Civic Theater, Ohio (1980)</p></div>
<p>We can think of Salavon&#8217;s photos as 2D films, where all frames are merged into one static image. Similar work has been done by the brilliant photographer Hiroshi Sugimoto, who&#8217;s camera has captured the entirety of feature films with one long shutter (above). Sugimoto does not wish to tell us about the film itself—in fact, the film title is never announced—but rather about qualities of light, surface, shape, form, and so forth.</p>
<p>Most data visualization projects start with structured data, spreadsheets, XML, databases, APIs. We like Salavon&#8217;s projects that bridge data visualization with more traditional media, using a raster imagery as the data sources, extracting patterns and meaning from highly unstructured content. They are beautiful in their own right, and serve as an inspiration for future data visualization projects.</p>
<img src="http://feeds.feedburner.com/~r/visualmotive/~4/jRMqXQodKJk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/jason-salavon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.visualmotive.com/2009/jason-salavon/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.519 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-11-09 03:12:46 --><!-- Compression = gzip -->
