# vim: sw=4 ts=4 expandtab ai
from random import random
-from math import pi, cos, sin, sqrt
+from math import pi, cos, sin, sqrt, ceil
import os.path
from misc import size_hum_read
filelist.sort(reverse=True)
filelist = filelist[:maxdata]
- # maximum size
+ # Maximum size
maximum = max([bsize for bsize, path, size in filelist])
#====================
# Diagram
#====================
- # only byte sizes
+ # Only byte sizes
self.data = (
('sizes',
[(i, d[0]) for i, d in enumerate(filelist)]),
)
- # labels for bar chart
+ # Labels for bar chart
ticks = [dict(v=i, label=os.path.basename(d[1])) for i, d in enumerate(filelist)]
+ # Calculate sizes axis range
+ max_ticks = 10
+
+ multiplier = 10**(len(`maximum`) - 2)
+ interval_2 = 2*multiplier
+ interval_5 = 5*multiplier
+
+ ticks_2 = range(0, maximum + interval_2, interval_2)
+ ticks_5 = range(0, maximum + interval_5, interval_5)
+
+ ticks_count2 = len(ticks_2) - 1
+ if ticks_count2 > max_ticks:
+ interval = interval_5
+ ticks_range = [0, max(ticks_5)]
+ else:
+ interval = interval_2
+ ticks_range = [0, max(ticks_2)]
+
+ #print multiplier, interval, ticks_range
#yticks = [dict(v=i*1000, label=`i` + 'Kb') for i in range(maximum/1000)]
- #interval = (maximum/1024)*100
-# print 'maximum:', maximum
-# print 'interval:', interval
+ # Chart properties
self.options = {
'axis': {
'tickSize' : 0,
'tickFontSize' : 11,
'x': {
'ticks': ticks,
- 'tickCount': 7,
'rotate': 90,
},
'y': {
#'ticks': yticks,
- #'tickCount': maximum/(1000*10),
- 'tickCount': 10,
- #'tickPrecision' : 0,
- #'interval' : interval,
+ 'tickPrecision' : 0,
+ 'interval' : interval,
+ 'range' : ticks_range,
},
},
'background': {
cr.set_source_surface(self.surface, 0, 0)
cr.paint()
- # outline rectangle
+ # Outline rectangle
cr.set_source_rgb(0, 0, 0)
cr.rectangle(0, 0, w, h)
cr.stroke()