В matplotlib
линия строит график цветового цикла автоматически. Эти два линейных графика будут иметь разные цвета.
axes.plot(x1, y)
axes.plot(x2, y)
Однако, линейные графики не имеют. Обе эти серии данных будут иметь синие полосы.
axes.bar(x1, y)
axes.bar(x2, y)
Как сделать так, чтобы гистограммы автоматически циклически изменялись по заранее заданному набору цветов?
Может ли что-то подобное вам помочь?
#!/usr/bin/python
from matplotlib import cm
import matplotlib.pyplot as plt
#data
x=[1,2,4]
y=[11,12,8]
for i in range(0,len(x)):
plt.bar(x[i],y[i],color=cm.jet(1.*i/len(x)))
plt.show()
Подробнее о цветовых картах.
РЕДАКТИРОВАТЬ: См. этот пример , чтобы узнать, как переключаться между предопределенным набором цветов.
Из документации на http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.bar
Гистограммы не изменяют цвет автоматически, а вы можете установить цвет напрямую, передав свойства цвета. Что-то вроде этого:
colors = ['red', 'blue', 'green']
i = -1
def getCycledColor():
global i, colors
if i < len(colors) -1
i = i + 1
return colors[i]
else:
i = -1
axes.bar(x1,y,facecolor=getCycledColor())
axes.bar(x2,y,facecolor=getCycledColor())
Цвета можно выбирать из предопределенного списка и циклически повторять.