question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Add Radial Heatmap

See original GitHub issue

Proposal

Radial heatmaps are great for visualizing periodicity. I would like to help adding radial heatmaps to holoviews.

I’ve implemented radial heatmaps in bokeh, as you can see here: radialheatmap

The link to the notebook including the code can be found here.

First steps

I started to take a closer look on how to implement a radial heatmap in holoviews having a working bokeh example. Here are some considerations:

  • Data wise, radial heatmaps are very much like a normal, rectular heatmap. Both have 2 key dimensions and one or more value dimension whereas the first value dimension is used for color. Hence, the Heatmap Element class is the perfect data container.
  • Plotting wise, the corresponding HeatmapPlot provides the basic functionality. The get_data method needs to be adjusted to compute radius, radients and so on (which is no big deal having a working example)

Issues

However, I’ve ran into 2 concrete problems:

  1. Since radial and rectular heatmaps are very similar, they could be represented within the same class (e.g. HeatmapPlot). To select either a radial or rectular heatmap, a parameter could be used like in grouped or stacked bar plots. However, the underlying glyphs for radial (annular_wedge) and rectular (rect) heatmaps differ. By design, a plot class may only have one single key for _plot_methods, right? Therefore, my current guess is to create a new plotting class (and hence a new element class).

  2. The radial heatmap requires axis labels to be positioned manually since radial axis to not exist. Because of that, I need to add text glyphs to the annular_wedge glyphs. Furthermore, I would like to add some visual marker to increase readability of the chart, like those bold white lines in the following plot which results in 3 different glyphs (annular_wedge, text and multi_line). How can I integrate different glyphs in the same plot? Overlay?:

radialheatmap2

Thanks for your advice.

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:9 (9 by maintainers)

github_iconTop GitHub Comments

1reaction
philippjfrcommented, Nov 20, 2017

As a quick aside, I don’t know your preferred workflow but I usually prototype new plots in a notebook (e.g. see https://anaconda.org/philippjfr/bars/notebook) and then move it into the code. I think writing a separate RadialHeatMapPlot makes sense, you can simply override the default HeatMapPlot for now using hv.Store.register({HeatMap: RadialHeatMapPlot}, 'bokeh') and then I’d be happy to solve the issue of switching between plotting classes (probably by adding a plot option).

0reactions
philippjfrcommented, Nov 23, 2017

I fixed some of the more important issues in #2140, so you should be able to implement it now.

Read more comments on GitHub >

github_iconTop Results From Across the Web

How to Create a Radial Heat Map - Data Xtractor
Just like the equivalent rectangular Inline Heat Maps, Radial Heat Maps replicate with colors the “intensity” of some grid's values: larger the value,...
Read more >
Heatmap and Radial Barchart with Matplotlib
This post explains how to create a custom visualization that is made of one heatmap and multiple radial barcharts in Matplotlib. Step by...
Read more >
Warp Space and Time with Radial Heatmaps | by Cole Hagen
A radial heatmap is a more complex form of data visualization that is essentially a simple heatmap rolled into a ball. Therefore, a...
Read more >
RadialHeatMap — HoloViews v1.15.3
A radial HeatMap is well suited to discover periodic patterns and trends in time series data and other cyclic variables. A radial HeatMap...
Read more >
The Radial Map - PolicyViz
Each radii shows a different state and they are grouped together by region of the country (though it's not totally clear to me...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found