Bipolar Colormap

Hot and cold colormap for diverging data
Alternatives To Bipolar Colormap
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Matplotlib17,11239,55215,5088 hours ago95May 03, 20221,810Python
matplotlib: plotting with Python
Seaborn10,4996,3933,0178 days ago30June 27, 2022114bsd-3-clausePython
Statistical data visualization in Python
Scientific Visualization Book9,131
13 days ago17otherPython
An open access book on scientific visualization using python and matplotlib
a month agomitHTML
A comprehensive machine learning repository containing 30+ notebooks on different concepts, algorithms and techniques.
Panel2,6551894a day ago225July 05, 2022676bsd-3-clausePython
A high-level app and dashboarding solution for Python
Matplotlib Cheatsheet2,088
3 years ago2bsd-2-clausePython
Matplotlib 3.1 cheat sheet.
Covid19 Dashboard1,646
2 months ago1,549apache-2.0Jupyter Notebook
A site that displays up to date COVID-19 stats, powered by fastpages.
Mplcyberpunk1,09326 months ago11July 07, 20223mitPython
"Cyberpunk style" for matplotlib plots
Proplot87382 days ago33October 19, 202158mitPython
🎨 A succinct matplotlib wrapper for making beautiful, publication-quality graphics
Pywaffle493210 months ago27June 08, 20224mitPython
🧇 Make Waffle Charts in Python.
Alternatives To Bipolar Colormap
Select To Compare

Alternative Project Comparisons


Hot and cold colormap for diverging data

This started as a translation of Bipolar Colormap by Ged Ridgway into Python. The original had 4 different colormap regions:

  • n < 0.0: Rainbow colormap
  • n < 0.5: Diverging cyan - blue - dark - red - yellow
  • n = 0.5: Sequential dark purple to bright yellow
  • n > 0.5: Diverging blue - cyan - light - yellow - red

This only implements 2:

  • n < 0.5: Diverging cyan - blue - dark - red - yellow
  • n 0.5: Diverging blue - cyan - light - yellow - red

This is not a modern well-designed colormap; it's not perceptually uniform, does not have uniform lightness steps, and the endpoints are not equal lightness. But it looks nice for some purposes.

Removing halos

The original bipolar() had "halos" (Mach bands?) from going out to the corners of the RGB cube and then making a right angle:

bipolar with halos marked by arrows

So I made a version with Bzier curves through the RGB cube that is smoother and gets rid of the prominent bands, and called it hotcold(). I would recommend this be used instead of bipolar():

hotcold with no halos

It's still not perceptually uniform, but improved. I think true perceptual uniformity (equally-spaced steps in perceptual colorspace) is overrated, but it would be nice to improve it to have uniform lightness steps, and maybe same-lightness endpoints.


bipolar colormaps of 0.0, 0.2, 0.4, 0.6, 0.8, 1.0 neutral

hotcold colormaps of 0.0, 0.2, 0.4, 0.6, 0.8, 1.0 neutral


Very similar colormap is FireIce by Joseph Kirk

Comparisons with other conceptually-similar maps from matplotlib, colorcet, and CMasher:

bipolar colormap vs iceburn, redshift, bkr, bjr

bipolar colormap vs CET_D10, cwr, CET_D9, coolwarm, bwr, RdBu, seismic, fusion

Popular Data Visualization Projects
Popular Matplotlib Projects
Popular User Interface Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Data Visualization