Simple Plots
One of my most frequent tasks is plotting x-y plots.
(require 'ob-ipython)
%matplotlib inline import matplotlib.pyplot as plt plt.style.use('ggplot')
import os import re from functools import reduce path = os.path.join(os.getcwd(), "simpleplot.org") contents = None with open(path) as simpleplot: contents = simpleplot.read() contents = re.sub(r'[^a-zA-Z]', '', contents.lower()) def group(value, element): if not value[1] or value[1][-1] != element: value[0].append(1) value[1].append(str(element)) else: value[0][-1] += 1 return value counts, characters = reduce(group, sorted(contents), ([], [])) counts, characters = zip( *sorted(zip(counts, characters), key=lambda x: x[0]))
ticks = range(len(counts)) plt.figure(figsize=(5, 7)) plt.barh(ticks, counts, tick_label=characters) plt.show()
Testing