Skip to content

Instantly share code, notes, and snippets.

@zoidyzoidzoid
Last active December 14, 2015 17:07
Show Gist options
  • Save zoidyzoidzoid/dd2a05548ca1f2f885ef to your computer and use it in GitHub Desktop.
Save zoidyzoidzoid/dd2a05548ca1f2f885ef to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import matplotlib.pyplot as plt
import math
import random
data = [random.randint(10,100) for i in range(0,100)]
class Analysis(object):
def __init__(self, data):
data = ds or []
if not isinstance(ds, list):
return 'no list... why no list???'
if any(not isinstance(d, int) for d in ds):
return 'At least one element of ds is not an int.'
self.data = data
def mean(self):
return sum(self.data) / len(self.data)
def median(self):
data = sorted(self.data)
ds_length = len(self.data)
if ds_length < 1:
return None
elif ds_length % 2 == 1:
return self.data[((ds_length + 1) / 2) - 1]
else:
return float(sum(self.data[(ds_length / 2) - 1:(ds_length / 2) + 1])) / 2.0
def mode(self):
return max(set(self.data), key=self.data.count)
def std(self):
return math.sqrt(sum((val - mean(self.data)) ** 2 for val in self.data) / (len(self.data) - 1))
def get_max(self):
return max(self.data)
def get_min(self):
return min(self.data)
def get_range(self):
return max(self.data) - min(self.data)
def graph_it(ds, mean=None, median=None, mode=None, maximum=None, minimum=None, range=None, std_dev=None):
mean = mean or self.mean()
median = median or self.median()
mode = mode or self.mode()
maximum = maximum or self.get_max()
minimum = minimum or self.get_min()
data_range = data_range or self.get_range()
std_dev = std_dev or self.std_dev()
means = [mean for i in ds]
medians = [median for i in ds]
modes = [mode for i in ds]
maxes = [maximum for i in ds]
mins = [get_min for i in ds]
stdsp = [mean + std for i in ds]
stdsm = [mean - std for i in ds]
ranges = [get_range for i in ds]
[plt.plot(i) for i in [ds,means,medians,modes,maxes,mins,ranges,stdsp,stdsm]]
plt.title(
'mean = {} median = {} mode = {} std = {} max = {} min = {} range = {}'.format(
mean, median, mode, std_dev, maximum, minimum, data_range))
# plt.savefig('./tmp.png')
plt.show()
Analysis(data).graph_it()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment