Как скомпоновать две гистограммы вместе в Matplotlib

  1. Две гистограммы без перекрывающихся баров
  2. Две гистограммы с перекрывающимися барами

Мы можем построить две гистограммы на одной фигуре одновременно. Ниже показаны методы создания двух гистограмм с перекрывающимися барами и без них.

Две гистограммы без перекрывающихся баров

Рабочие примеры кодов:

import numpy as np
import matplotlib.pyplot as plt

a = np.random.normal(0, 3, 3000)
b = np.random.normal(2, 4, 2000)

bins = np.linspace(-10, 10, 20)

plt.hist([a, b], bins, label=['a', 'b'])
plt.legend(loc='upper left')
plt.show()

Matplotlib рисует две гистограммы одновременно без перекрытия баров

Две гистограммы с перекрывающимися барами

Рабочие примеры кодов:

import numpy as np
import matplotlib.pyplot as plt

a = np.random.normal(0, 3, 1000)
b = np.random.normal(2, 4, 900)

bins = np.linspace(-10, 10, 50)

plt.hist(a, bins, alpha = 0.5, label='a')
plt.hist(b, bins, alpha = 0.5, label='b')
plt.legend(loc='upper left')

plt.show()

Matplotlib рисует две гистограммы одновременно с перекрывающимися барами

Когда мы дважды вызываем plt.hist для построения гистограмм по отдельности, на двух гистограммах будут перекрытые бары, как видно выше.

Свойство alfa указывает на прозрачность графика. 0.0 прозрачно, а 1.0 непрозрачно.

Когда для обеих гистограмм свойство alpha установлено в 0.5, перекрытая область показывает комбинированный цвет. Но если alfa равно 0.0, то значение по умолчанию, перекрытая область показывает только цвет более высокого значения среди двух гистограмм, а другой цвет скрыт, как показано ниже.

Matplotlib рисует две гистограммы одновременно с перекрывающимися барами_спрятанными барами

comments powered by Disqus