summaryrefslogtreecommitdiffstats
path: root/python/fatcat_web/graphics.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/fatcat_web/graphics.py')
-rw-r--r--python/fatcat_web/graphics.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/python/fatcat_web/graphics.py b/python/fatcat_web/graphics.py
new file mode 100644
index 00000000..0e4b7c9d
--- /dev/null
+++ b/python/fatcat_web/graphics.py
@@ -0,0 +1,36 @@
+
+import pygal
+from pygal.style import CleanStyle
+
+def ia_coverage_histogram(rows):
+ """
+ Note: this returns a raw pygal chart; it does not render it to SVG/PNG
+ """
+
+ raw_years = [int(r[0]) for r in rows]
+ years = dict()
+ for y in range(min(raw_years), max(raw_years)+1):
+ years[int(y)] = dict(year=int(y), available=0, missing=0)
+ for r in rows:
+ if r[1]:
+ years[int(r[0])]['available'] = r[2]
+ else:
+ years[int(r[0])]['missing'] = r[2]
+
+ years = sorted(years.values(), key=lambda x: x['year'])
+
+ CleanStyle.colors = ("green", "purple")
+ label_count = len(years)
+ if len(years) > 20:
+ label_count = 10
+ chart = pygal.StackedBar(dynamic_print_values=True, style=CleanStyle,
+ width=1000, height=500, x_labels_major_count=label_count,
+ show_minor_x_labels=False)
+ #chart.title = "Perpetual Access Coverage"
+ chart.x_title = "Year"
+ #chart.y_title = "Releases"
+ chart.x_labels = [str(y['year']) for y in years]
+ chart.add('Available', [y['available'] for y in years])
+ chart.add('Missing', [y['missing'] for y in years])
+ return chart
+