Гистограмма Pyplot с более чем 7 наборами данных
Pyplot позволяет создавать сложенные гистограммы нескольких наборов данных (например, Этот ).
Однако, если у меня есть более 7 наборов данных в гистограмме, она повторяет цвет.
Есть ли способ различать за пределами 7 различных цветов?
Я попытался использовать необязательный аргумент штриховки (, описанный здесь), но он принимает только один стиль штриховки для всех баров, а не один стиль штриховки для каждого бара.
# This applies one hatch-style to all bars
plt.hist(data, label=label, normed=True, stacked=True, hatch='/')
# This doesn't apply different hatch styles to different bars.
# It throws an error
plt.hist(data, label=label, normed=True, stacked=True, hatch=
['/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*', 'oo', 'xx'])
1 ответ:
Matplotlib использует цветовой цикл с предопределенными цветами. Вы можете изменить этот цветовой цикл по своему вкусу, но он будет чище, если вы непосредственно укажете цвета в вызове
hist
. Это утомительно, чтобы указать цвета вручную, так что вы можете использовать один из matplotlibs colormaps для их генерации. В приведенном ниже примере я также использовал цветовую карту из colorbrewer, поскольку они тоже довольно хороши.import matplotlib.pyplot as plt import numpy as np import brewer2mpl colors_brewer = brewer2mpl.get_map('Paired', 'Qualitative', 12).mpl_colors colors_jet = plt.cm.jet(np.linspace(0,1,12)) # random data data = np.random.rand(100,12) # plot it fig, ax = plt.subplots(1,2) ax[0].hist(data, bins=10, stacked=True, color=colors_brewer) ax[1].hist(data, bins=10, stacked=True, color=colors_jet) plt.show()
Результат: