Hướng dẫn normalize histogram python


To normalize a histogram in Python, we can use hist() method. In normalized bar, the area underneath the plot should be 1.

Nội dung chính

  • How do you create a normalized histogram in Python?
  • How do you create a normalized histogram?
  • How do I normalize a histogram in MatPlotLib?
  • How do you fit a normal distribution to a histogram in Python?

Steps

  • Make a list of numbers.

  • Plot a histogram with density=True.

  • To display the figure, use show() method.

Example

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

k = [5, 5, 5, 5]
x, bins, p = plt.hist(k, density=True)

plt.show()

Output

Hướng dẫn normalize histogram python

Updated on 08-May-2021 08:55:40

  • Related Questions & Answers
  • How to normalize a Database Table
  • How to normalize a tensor in PyTorch?
  • How to make a log histogram in Python?
  • How to save a histogram plot in Python?
  • How to have logarithmic bins in a Python histogram?
  • HTML DOM normalize( ) Method
  • How to plot a 2D histogram in Matplotlib?
  • Circular (polar) histogram in Python
  • How to plot a histogram using Matplotlib in Python with a list of data?
  • How to specify different colors for different bars in a Python matplotlib histogram?
  • Normalize numbers in an object - JavaScript
  • Largest Rectangle in Histogram in Python
  • How to create a histogram using weights in R?
  • How to highlight a bar in base R histogram?
  • How to center labels in a Matplotlib histogram plot?

We can normalize a histogram in Matplotlib using the density keyword argument and setting it to True. By normalizing a histogram, the sum of the bar area equals 1.

Consider the below histogram where we normalize the data:

nums1 = [1,1,2,3,3,3,3,3,4,5,6,6,6,7,8,8,9,10,12,12,12,12,14,18]

nums2= [10,12,13,13,14,14,15,15,15,16,17,18,20,22,23]

fig,ax = plt.subplots() # Instantiate figure and axes object

ax.hist(nums1, label="nums1", histtype="step", density=True) # Plot histogram of nums1

ax.hist(nums2, label="nums2", histtype="step", density=True) # Plot histogram of nums2

plt.legend()

plt.show()

Normalized histogram:

This is a follow-up question to this answer. I'm trying to plot normed histogram, but instead of getting 1 as maximum value on y axis, I'm getting different numbers.

For array k=(1,4,3,1)

 import numpy as np

 def plotGraph():
   
    import matplotlib.pyplot as plt
    
    k=(1,4,3,1)

    plt.hist(k, normed=1)

    from numpy import *
    plt.xticks( arange(10) ) # 10 ticks on x axis

    plt.show()  
    
plotGraph()

I get this histogram, that doesn't look like normed.

For a different array k=(3,3,3,3)

 import numpy as np

 def plotGraph():
   
    import matplotlib.pyplot as plt
    
    k=(3,3,3,3)

    plt.hist(k, normed=1)

    from numpy import *
    plt.xticks( arange(10) ) # 10 ticks on x axis

    plt.show()  
    
plotGraph()

I get this histogram with max y-value is 10.

For different k I get different max value of y even though normed=1 or normed=True.

Why the normalization (if it works) changes based on the data and how can I make maximum value of y equals to 1?

UPDATE:

I am trying to implement Carsten König answer from plotting histograms whose bar heights sum to 1 in matplotlib and getting very weird result:

import numpy as np

def plotGraph():

    import matplotlib.pyplot as plt

    k=(1,4,3,1)

    weights = np.ones_like(k)/len(k)
    plt.hist(k, weights=weights)

    from numpy import *
    plt.xticks( arange(10) ) # 10 ticks on x axis

    plt.show()  

plotGraph()

Result:

What am I doing wrong?

How do you create a normalized histogram in Python?

To normalize a histogram in Python, we can use hist() method. In normalized bar, the area underneath the plot should be 1..

Make a list of numbers..

Plot a histogram with density=True..

To display the figure, use show() method..

How do you create a normalized histogram?

Steps:.

Read the image..

Convert color image into grayscale..

Display histogram..

Observe maximum and minimum intensities from the histogram..

Change image type from uint8 to double..

Apply a formula for histogram normalization..

Convert back into unit format..

Display image and modified histogram..

How do I normalize a histogram in MatPlotLib?

We can normalize a histogram in Matplotlib using the density keyword argument and setting it to True . By normalizing a histogram, the sum of the bar area equals 1. Hit / to insta-search docs and recipes!

How do you fit a normal distribution to a histogram in Python?

How to fit a distribution to a histogram in Python.

data = np. random. normal(0, 1, 1000) generate random normal dataset..

_, bins, _ = plt. hist(data, 20, density=1, alpha=0.5) create histogram from `data`.

mu, sigma = scipy. stats. norm. fit(data).

best_fit_line = scipy. stats. norm. ... .

plt. plot(bins, best_fit_line).