Tracer deux histogrammes dans une figure matplotlib

Published: 27 février 2017

DMCA.com Protection Status

Pour tracer un histogramme à partir d'un ensemble de données il existe la fonction matplotlib hist(). Pour tracer deux histogrammes on peut donc tout simplement faire appelle deux fois a cette fonction, exemple:

Tracer deux histogrammes dans une figure matplotlib (1/3)
Tracer deux histogrammes dans une figure matplotlib (1/3)

import numpy as np
import matplotlib.pyplot as plt

data1 = np.random.randn(100000)

plt.hist(data1, bins=25, normed=1,color="lightblue")

mu = 5.0
sigma = 3.0

data2 = np.random.randn(100000) * sigma + mu

plt.hist(data2, bins=50, normed=1,color="lightcoral")

plt.title('Two histograms')
plt.grid()

plt.savefig("two_histograms_01.png", bbox_inches='tight')
plt.show()

Pour améliorer on peut rendre le second histogramme transparent avec l'option alpha:

Tracer deux histogrammes dans une figure matplotlib (2/3)
Tracer deux histogrammes dans une figure matplotlib (2/3)

import numpy as np
import matplotlib.pyplot as plt

data1 = np.random.randn(100000)

plt.hist(data1, bins=25, normed=1,color="lightblue")

mu = 5.0
sigma = 3.0

data2 = np.random.randn(100000) * sigma + mu

plt.hist(data2, bins=50, normed=1,color="red", alpha=0.5)

plt.title('Two histograms (alpha=0.5)')
plt.grid()

plt.savefig("two_histograms_02.png", bbox_inches='tight')
plt.show()

et aussi définir un intervalle fixe avec bins = np.linspace(-5, 15, 100):

Tracer deux histogrammes dans une figure matplotlib (3/3)
Tracer deux histogrammes dans une figure matplotlib (3/3)

import numpy as np
import matplotlib.pyplot as plt

bins = np.linspace(-5, 15, 100)

data1 = np.random.randn(100000)

plt.hist(data1, bins=bins, normed=1,color="lightblue")

mu = 5.0
sigma = 3.0

data2 = np.random.randn(100000) * sigma + mu

plt.hist(data2, bins=bins, normed=1,color="red", alpha=0.5)

plt.title('Two histograms (alpha=0.5 + same bins size)')
plt.grid()

plt.savefig("two_histograms_03.png", bbox_inches='tight')
plt.show()

Références

Image

of