RokiDGupta RokiDGupta - 3 months ago 12
Python Question

plot most frequent words in python

list of most common words
Output is given below:

[('film', 904), ('movie', 561), ('one', 379), ('like', 292)]

I want a graph using matplotlib for each word according to the numbers

please help me

Answer

Here is one quick adoptation of this example using a bar-chart.

#!/usr/bin/env python
# a bar plot with errorbars
import numpy as np
import matplotlib.pyplot as plt


data = [('film', 904), ('movie', 561), ('one', 379), ('like', 292)]
names, values = zip(*data)  # @comment by Matthias
# names = [x[0] for x in data]  # These two lines are equivalent to the the zip-command.
# values = [x[1] for x in data] # These two lines are equivalent to the the zip-command.

ind = np.arange(len(data))  # the x locations for the groups
width = 0.35       # the width of the bars

fig, ax = plt.subplots()
rects1 = ax.bar(ind, values, width, color='r')

# add some text for labels, title and axes ticks
ax.set_ylabel('Count')
ax.set_xticks(ind+width/2.)
ax.set_xticklabels(names)



def autolabel(rects):
    # attach some text labels
    for rect in rects:
        height = rect.get_height()
        ax.text(rect.get_x() + rect.get_width()/2., 1.05*height,
                '%d' % int(height),
                ha='center', va='bottom')

autolabel(rects1)

plt.show()
Comments