I need to create a histogram that plots a line and not a step or bar chart. I am using python 2.7 The plt.hist function below plots a stepped line and the bins don't line up in the plt.plot function.
import matplotlib.pyplot as plt import numpy as np noise = np.random.normal(0,1,(1000,1)) (n,x,_) = plt.hist(noise, bins = np.linspace(-3,3,7), histtype=u'step' ) plt.plot(x[:-1],n)
I need the line to correlate with each bin's count at the bin centers as if there was a histtype=u'line' flag to go with the align=u'mid' flag
Tweaking Matplotlib Preferably, one that has tick mark and other features closer to the aesthetic you want to achieve. Turn the frame and grid lines off. Tweak the x-axis so that there is a gap with the y-axis, which seems more appropriate for histograms. Have color options allowing for separation between bins.
In Matplotlib, we use the hist() function to create histograms. The hist() function will use an array of numbers to create a histogram, the array is sent into the function as an argument.
Using scipy, you could use stats.gaussian_kde
to estimate the probability density function:
import matplotlib.pyplot as plt import numpy as np import scipy.stats as stats noise = np.random.normal(0, 1, (1000, )) density = stats.gaussian_kde(noise) n, x, _ = plt.hist(noise, bins=np.linspace(-3, 3, 50), histtype=u'step', density=True) plt.plot(x, density(x)) plt.show()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With