Using matplotlib colorbars in pgfplots

Using different programs for diagrams within one single document can be a never ending story of unmatching graphics. For example, matplotlib used a different interpolation method for colormaps than pgfplots. Disregarding alpha components, the following script produces a matching colormap. Just specify the matplotlib colormap name as command line argument and you will get a lengthy output that can be pasted to your LaTeX document. The resulting colorbars will at least look very similar:

matplotlib

matplotlib

Three sample points: different interpolation method

Three sample points: different interpolation method

pgfplots: correct interpolation

pgfplots: correct interpolation

#!/usr/bin/env python
# system modules
import sys

# third-party modules
import matplotlib.cm as cm

if len(sys.argv) != 2:
    print 'Usage: %s colormap' % sys.argv[0]
    exit(1)

try:
    c = cm.get_cmap(sys.argv[1])
except:
    print 'Colormap not found'
    exit(2)

print '\pgfplotsset{colormap={%s}{[1pt]' % sys.argv[1]
for i in range(101):
    print 'rgb(%spt)=%s;' % (i, c(i/100.0)[0:3])
print '}}'

You may also like...

Leave a Reply

Your email address will not be published.