<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>data-viz on Kevin Schaul</title>
    <link>https://kschaul.com/tags/data-viz/</link>
    <description>Recent content in data-viz on Kevin Schaul</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 16 Mar 2026 00:00:00 -0500</lastBuildDate><atom:link href="https://kschaul.com/tags/data-viz/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>See which jobs are most threatened by AI and who may be able to adapt</title>
      <link>https://kschaul.com/project/jobs-threatened-by-ai/</link>
      <pubDate>Mon, 16 Mar 2026 00:00:00 -0500</pubDate>
      
      <guid>https://kschaul.com/project/jobs-threatened-by-ai/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>How counties are shifting in the 2024 presidential election</title>
      <link>https://kschaul.com/project/2024-11-05-election-shifts/</link>
      <pubDate>Tue, 05 Nov 2024 14:07:25 -0600</pubDate>
      
      <guid>https://kschaul.com/project/2024-11-05-election-shifts/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>Grocery chains are bigger than ever. See who runs the stores near you.</title>
      <link>https://kschaul.com/project/grocery-store-owners/</link>
      <pubDate>Tue, 24 Sep 2024 14:02:33 -0600</pubDate>
      
      <guid>https://kschaul.com/project/grocery-store-owners/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>avoid-overlap: Utilities for chart-makers to avoid text overlaps in their graphics</title>
      <link>https://kschaul.com/post/2023/07/10/avoid-overlap-utilities-for-chart-makers-to-avoid-text-overlaps-in-their-graphics/</link>
      <pubDate>Mon, 10 Jul 2023 09:15:00 -0500</pubDate>
      
      <guid>https://kschaul.com/post/2023/07/10/avoid-overlap-utilities-for-chart-makers-to-avoid-text-overlaps-in-their-graphics/</guid>
      <description>
        &lt;p&gt;I&amp;rsquo;ve been working on a library to help chart-makers avoid text overlaps in their graphics, and it&amp;rsquo;s finally in a place worth sharing. Check it out &lt;a href=&#34;https://github.com/kevinschaul/avoid-overlap&#34;&gt;on GitHub&lt;/a&gt; or in action at two of my &lt;a href=&#34;https://www.washingtonpost.com/technology/interactive/2023/aging-america-retirees-workforce-economy/&#34;&gt;recent&lt;/a&gt; &lt;a href=&#34;https://www.washingtonpost.com/technology/interactive/2023/ai-chatbot-learning/&#34;&gt;graphics&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Labeling charts, maps and other graphics is more art than science, but there are some general rules we can follow to achieve good results programmatically. This library provides two label-avoidance techniques: &lt;code&gt;nudge&lt;/code&gt; and &lt;code&gt;choices&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;nudge&#34;&gt;Nudge&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;nudge&lt;/code&gt; technique resolves overlaps by simply nudging labels away from each other until they no longer collide. You can limit the nudging to specific directions and distances. This technique works well if the thing you’re labeling is an area rather than a specific point.&lt;/p&gt;
&lt;p&gt;The following images, from &lt;a href=&#34;https://www.washingtonpost.com/technology/interactive/2023/ai-chatbot-learning/&#34;&gt;a Washington Post graphic&lt;/a&gt;, demonstrate the &lt;code&gt;nudge&lt;/code&gt; technique. The labels were passed to &lt;code&gt;avoid-overlap&lt;/code&gt;, specifying that nudging the labels either down or to the right would work.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Before&lt;/th&gt;
          &lt;th&gt;After&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;img src=&#34;https://kschaul.com/post/2023/07/10/avoid-overlap-utilities-for-chart-makers-to-avoid-text-overlaps-in-their-graphics/example-nudge-0.png&#34; alt=&#34;Chart with labels overlapping&#34; /&gt;&lt;/td&gt;
          &lt;td&gt;&lt;img src=&#34;https://kschaul.com/post/2023/07/10/avoid-overlap-utilities-for-chart-makers-to-avoid-text-overlaps-in-their-graphics/example-nudge-1.png&#34; alt=&#34;Same chart with the overlapping labels nudged so they no longer collide&#34; /&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;choices&#34;&gt;Choices&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;choices&lt;/code&gt; technique resolves overlaps by trying a series of positions provided by the user until it finds a combination that works. This technique works well if some number of different positions might work, for example if you are using a leader line or arrow.&lt;/p&gt;
&lt;p&gt;In the following example, the labels were passed to &lt;code&gt;avoid-overlap&lt;/code&gt; with a list of functions that could draw the label and an arrow in different positions: to the top left, top middle, top right, bottom left, bottom middle and bottom right. The library tries these positions until it finds a combination that works.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Before&lt;/th&gt;
          &lt;th&gt;After&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;img src=&#34;https://kschaul.com/post/2023/07/10/avoid-overlap-utilities-for-chart-makers-to-avoid-text-overlaps-in-their-graphics/example-choices-0.png&#34; alt=&#34;Chart with labels overlapping&#34; /&gt;&lt;/td&gt;
          &lt;td&gt;&lt;img src=&#34;https://kschaul.com/post/2023/07/10/avoid-overlap-utilities-for-chart-makers-to-avoid-text-overlaps-in-their-graphics/example-choices-1.png&#34; alt=&#34;Same chart with the overlapping labels rendered using one of the provided choices so they no longer collide&#34; /&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;visual-testing&#34;&gt;Visual testing&lt;/h3&gt;
&lt;p&gt;This was my first time using visual testing in a project. I set it up using Storybook and Chromatic, and honestly it worked quite nicely. So far the tests are &lt;a href=&#34;https://www.chromatic.com/build?appId=64a5bef463fbc133b9a4b6b6&amp;amp;number=25&#34;&gt;fairly simple&lt;/a&gt;, but I&amp;rsquo;m hoping this pays off in the future as I refine the overlap avoidance techniques.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/kevinschaul/avoid-overlap&#34;&gt;See avoid-overlap on GitHub&lt;/a&gt;.&lt;/p&gt;

        
        
      </description>
    </item>
    
    <item>
      <title>See the websites that make AI like ChatGPT sound so smart</title>
      <link>https://kschaul.com/project/see-the-websites-that-make-ai-like-chatgpt-sound-so-smart/</link>
      <pubDate>Fri, 21 Apr 2023 08:10:00 -0500</pubDate>
      
      <guid>https://kschaul.com/project/see-the-websites-that-make-ai-like-chatgpt-sound-so-smart/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>The housing market is cooling. What’s it like in your area?</title>
      <link>https://kschaul.com/project/the-housing-market-is-cooling-what-s-it-like-in-your-area/</link>
      <pubDate>Tue, 20 Sep 2022 00:00:00 -0500</pubDate>
      
      <guid>https://kschaul.com/project/the-housing-market-is-cooling-what-s-it-like-in-your-area/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>How Big Tech got so big: Hundreds of acquisitions</title>
      <link>https://kschaul.com/project/2021-04-21-tech-acquisitions/</link>
      <pubDate>Wed, 21 Apr 2021 10:00:00 -0500</pubDate>
      
      <guid>https://kschaul.com/project/2021-04-21-tech-acquisitions/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>The issues 2020 Democrats are running on, according to their social media</title>
      <link>https://kschaul.com/project/2019-06-24-priorities-issues/</link>
      <pubDate>Mon, 24 Jun 2019 10:00:00 -0500</pubDate>
      
      <guid>https://kschaul.com/project/2019-06-24-priorities-issues/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>How Trump is shifting the most important courts in the country</title>
      <link>https://kschaul.com/project/2018-09-04-trump-federal-judges/</link>
      <pubDate>Tue, 04 Sep 2018 17:37:02 -0500</pubDate>
      
      <guid>https://kschaul.com/project/2018-09-04-trump-federal-judges/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>First-time, liberal candidates are flooding the Democratic primaries</title>
      <link>https://kschaul.com/project/2018-04-11-house-primaries-candidates/</link>
      <pubDate>Wed, 11 Apr 2018 17:37:02 -0500</pubDate>
      
      <guid>https://kschaul.com/project/2018-04-11-house-primaries-candidates/</guid>
      <description>
        
        
        
      </description>
    </item>
    
  </channel>
</rss>

