<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Create a Histogram - Python version
Create a histogram, fill it with random numbers, set its colour to blue, draw it.
Can you
Step1:  We now create our histogram
Step2:  We now import the gauss generation from the random module of Python and fill the histogram
Step3:  Time for styling the histogram and use jsroot
Step4:  We can also fill a ROOT histogram from a numpy array.
Step5:  We need to provide in addition to the data (x) also an array of weights (an array of ones for this case)
<ASSISTANT_TASK:>
Python Code:
import ROOT
Explanation: Create a Histogram - Python version
Create a histogram, fill it with random numbers, set its colour to blue, draw it.
Can you:
- Can you use the native Python random number generator for this?
- Can you make your plot interactive using JSROOT?
- Can you document what you did in markdown?
End of explanation
h = ROOT.TH1D("h", "My Notebook Histo;x;#", 64, -4, 4)
Explanation: We now create our histogram
End of explanation
from random import gauss
numbers = [gauss(0., 1.) for _ in range(1000)]
numbers
for i in numbers: h.Fill(i)
Explanation: We now import the gauss generation from the random module of Python and fill the histogram
End of explanation
%jsroot on
h.SetLineColor(ROOT.kBlue)
h.SetFillColor(ROOT.kBlue)
c = ROOT.TCanvas()
h.Draw()
c.Draw()
Explanation: Time for styling the histogram and use jsroot
End of explanation
import numpy as np
x = np.random.normal(0.,2.,1000)
h.Reset()
Explanation: We can also fill a ROOT histogram from a numpy array.
End of explanation
h.FillN(1000,x,np.ones(1000))
h.Draw()
c.Draw()
Explanation: We need to provide in addition to the data (x) also an array of weights (an array of ones for this case)
End of explanation
<END_TASK>