Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Plot Histogram in Python

Tags:

I have two lists, x and y.
x contains the alphabet A-Z and Y contains the frequency of them in a file.

I've tried researching how to plot these values in a histogram but has had no success with understanding how to plot it.

n, bins, patches = plt.hist(x, 26, normed=1, facecolor='blue', alpha=0.75)

Would x be list x in the lists mentioned above?

like image 345
PythonAlex Avatar asked May 08 '11 06:05

PythonAlex


People also ask

How do you plot a histogram in Python?

To create a histogram the first step is to create bin of the ranges, then distribute the whole range of the values into a series of intervals, and count the values which fall into each of the intervals. Bins are clearly identified as consecutive, non-overlapping intervals of variables. The matplotlib. pyplot.

How do you plot histogram?

A histogram is drawn like a bar chart, but often has bars of unequal width. It is the area of the bar that tells us the frequency in a histogram, not its height. Instead of plotting frequency on the y-axis, we plot the frequency density. To calculate this, you divide the frequency of a group by the width of it.

How do you plot a histogram using NumPy in Python?

Creating Numpy HistogramNumpy has a built-in numpy. histogram() function which represents the frequency of data distribution in the graphical form. The rectangles having equal horizontal size corresponds to class interval called bin and variable height corresponding to the frequency.


1 Answers

hist works on a collection of values and computes and draws the histogram from them. In your case you already precalculated the frequency of each group (letter). To represent your data in an histogram form use better matplotlib bar:

import numpy as np
import matplotlib.pyplot as plt

alphab = ['A', 'B', 'C', 'D', 'E', 'F']
frequencies = [23, 44, 12, 11, 2, 10]

pos = np.arange(len(alphab))
width = 1.0     # gives histogram aspect to the bar diagram

ax = plt.axes()
ax.set_xticks(pos + (width / 2))
ax.set_xticklabels(alphab)

plt.bar(pos, frequencies, width, color='r')
plt.show()

enter image description here

like image 138
joaquin Avatar answered Sep 21 '22 13:09

joaquin