Как сделать, чтобы гистограммы автоматически циклически переключались между разными цветами?

В matplotlib линия строит график цветового цикла автоматически. Эти два линейных графика будут иметь разные цвета.

axes.plot(x1, y)
axes.plot(x2, y)

Однако, линейные графики не имеют. Обе эти серии данных будут иметь синие полосы.

axes.bar(x1, y)
axes.bar(x2, y)

Как сделать так, чтобы гистограммы автоматически циклически изменялись по заранее заданному набору цветов?

15
задан Kit 29 August 2010 в 05:04
поделиться

2 ответа

Может ли что-то подобное вам помочь?

#!/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()

Подробнее о цветовых картах.

РЕДАКТИРОВАТЬ: См. этот пример , чтобы узнать, как переключаться между предопределенным набором цветов.

24
ответ дан 1 December 2019 в 02:01
поделиться

Из документации на 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())

Цвета можно выбирать из предопределенного списка и циклически повторять.

3
ответ дан 1 December 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: