Dear Tiago,

I am trying to use a matplotlib colormap for coloring vertices, and I need transparency also.

import graph_tool.all as gt
import matplotlib.pyplot as plt
import matplotlib.cm as cm
plt.switch_backend("cairo")

g = gt.collection.data["karate"]
position = gt.sfdp_layout(g)

fig, ax = plt.subplots(1, 1)
gt.graph_draw(g, pos = position, vertex_fill_color = gt.local_clustering(g),
        vcmap = (cm.inferno, 0.3), mplfig = ax)
plt.savefig("test.pdf")

I am getting the following error:

Traceback (most recent call last):
  File "test.py", line 12, in <module>
    plt.savefig("test.pdf")
  File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 701, in savefig
    res = fig.savefig(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/figure.py", line 1834, in savefig
    self.canvas.print_figure(fname, **kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/backend_bases.py", line 2267, in print_figure
    **kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_cairo.py", line 470, in print_pdf
    return self._save(fobj, 'pdf', *args, **kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_cairo.py", line 534, in _save
    self.figure.draw(renderer)
  File "/usr/lib/python3/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/figure.py", line 1299, in draw
    renderer, self, artists, self.suppressComposite)
  File "/usr/lib/python3/dist-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
    a.draw(renderer)
  File "/usr/lib/python3/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/matplotlib/axes/_base.py", line 2437, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "/usr/lib/python3/dist-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
    a.draw(renderer)
  File "/usr/lib/python3/dist-packages/graph_tool/draw/cairo_draw.py", line 1565, in draw
    self.vorder, self.eorder, self.nodesfirst, self.kwargs)
  File "/usr/lib/python3/dist-packages/graph_tool/draw/cairo_draw.py", line 690, in cairo_draw
    vattrs, vdefaults = _attrs(vprops, "v", g, vcmap)
  File "/usr/lib/python3/dist-packages/graph_tool/draw/cairo_draw.py", line 484, in _attrs
    nattrs[int(attr)] = _prop(d, g, _convert(attr, v, cmap))
  File "/usr/lib/python3/dist-packages/graph_tool/draw/cairo_draw.py", line 323, in _convert
    cmap, alpha = cmap
ValueError: too many values to unpack (expected 2)

However, if I remove vcmap argument, it draws fine. I am on Ubuntu 18.04, and the graph-tool version is 2.27. Kindly help me.

Thank you
Snehal Shekatkar


Sent with ProtonMail Secure Email.