Reputation: 1373
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
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