nick_name
nick_name

Reputation: 1373

Python >> matplotlib: Get the number of lines on a current plot?

Is there a way to get the number of lines currently on a matplotlib plot? I find myself setting colors in a colormap using a counter and multiplier to step through the color values--which seems rather un-pythonic.

Upvotes: 4

Views: 9245

Answers (1)

Francesco Montesano
Francesco Montesano

Reputation: 8668

All the Line2D objects in an axes are stored into a list

ax.lines  

If you use only simple line plots, the lenght of the above list is enough.

If you use plt.errorbar the situation is a bit more complicated, as it creates multiple Line2D objects (central lines, vertical and horizontal error bars and their caps).


If you want to automatise the colours to assign to lines you can create a cycle like this

import itertools as it
colors = it.cycle(list of colors)

and then call the next color with colors.next() and restart from the first after it gets to the last

Upvotes: 13

Related Questions