Plotting From Counter Will Maintaining Order
<p>I'm attempting to plot the word frequencies of the top 50 words from an article I copied off Wikipedia. I've had a look at <a href="https://stackoverflow.com/questions/20665232/how-to-plot-the-number-of-times-each-element-is-in-a-list">How to plot the number of times each element is in a list</a> <a href="https://stackoverflow.com/questions/22127769/python-frequency-of-occurrences">Python: Frequency of occurrences</a> and <a href="https://stackoverflow.com/questions/19198920/using-counter-in-python-to-build-histogram">Using Counter() in Python to build histogram?</a> which seemed to be a promising results until I realized that the solution does not maintain the order from <code>Counter()</code>. Is there a way to that I could retain the descending from <code>Counter()</code> while plotting?</p>

<p>The code that I'm using to play with the data:</p>

<pre><code># Standard Library
import collections
from collections import Counter
import itertools 
import re

# Third Party Library
import matplotlib.pyplot as plt
import nltk
import numpy as np

file = '...\\NLP\\Word_Embedding\\Basketball.txt'
text = open(file, 'r').read()
text = re.sub(r'([\"\'.])([\)\[,.;])', r'\1 \2', text)

vocab = text.split()
vocab = [words.lower() for words in vocab]
print('There are a total of {} words in the corpus'.format(len(vocab)))
tokens = list(set(vocab))
print('There are {} unique words in the corpus'.format(len(tokens)))

vocab_labels, vocab_values = zip(*Counter(vocab).items())
vocab_freq = Counter(vocab)

indexes = np.arange(len(vocab_labels[:10]))
width = 1

# plt.bar(indexes, vocab_values[:10], width) # Random 10 items from list
# plt.xticks(indexes + width * 0.5, vocab_labels[:10])
# plt.show()
</code></pre>

<p>Link to <a href="https://drive.google.com/file/d/0BydAPXCv3jeOQXQzTGFEeG9kTk0/view?usp=sharing" rel="nofollow noreferrer">Basketball.txt</a> file</p>