From a19a216bc60160c162e616145ef091dd18ce4e61 Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Tue, 16 Feb 2021 14:40:46 -0600 Subject: Python 0.9.1 as posted in alt.sources --- lib/Histogram.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 lib/Histogram.py (limited to 'lib/Histogram.py') diff --git a/lib/Histogram.py b/lib/Histogram.py new file mode 100644 index 0000000..3f6da76 --- /dev/null +++ b/lib/Histogram.py @@ -0,0 +1,36 @@ +# Module 'Histogram' + +from Buttons import * + +# A Histogram displays a histogram of numeric data. +# +class HistogramAppearance() = LabelAppearance(), Define(): + # + def define(self, parent): + Define.define(self, (parent, '')) + self.ydata = [] + self.scale = (0, 100) + return self + # + def setdata(self, (ydata, scale)): + self.ydata = ydata + self.scale = scale # (min, max) + self.parent.change(self.bounds) + # + def drawpict(self, d): + (left, top), (right, bottom) = self.bounds + min, max = self.scale + size = max-min + width, height = right-left, bottom-top + ydata = self.ydata + npoints = len(ydata) + v1 = top + height # constant + h1 = left # changed in loop + for i in range(npoints): + h0 = h1 + v0 = top + height - (ydata[i]-min)*height/size + h1 = left + (i+1) * width/npoints + d.paint((h0, v0), (h1, v1)) + # + +class Histogram() = NoReactivity(), HistogramAppearance(): pass -- cgit v1.2.3