Diagrams improvements
authorEugene Gagarin <mosfet07@ya.ru>
Thu, 7 May 2009 12:45:11 +0000 (16:45 +0400)
committerEugene Gagarin <mosfet07@ya.ru>
Thu, 7 May 2009 12:45:11 +0000 (16:45 +0400)
src/files/out_diabar.py
src/files/out_diapie.py

index e83d3ed..b6fbf52 100755 (executable)
@@ -6,6 +6,8 @@ from random import random
 from math import pi, cos, sin, sqrt
 import os.path
 
+from misc import size_hum_read
+
 #==============================================================================
 
 class Cli_Presentation(object):
@@ -26,6 +28,9 @@ class Gtk_Presentation(object):
         filelist.sort(reverse=True)
         filelist = filelist[:maxdata]
 
+        # maximum size
+        maximum = max([bsize for bsize, path, size in filelist])
+
         # only byte sizes
         self.data = (
             ('sizes',
@@ -35,33 +40,48 @@ class Gtk_Presentation(object):
         # labels for bar chart
         ticks = [dict(v=i, label=os.path.basename(d[1])) for i, d in enumerate(filelist)]
 
+        #yticks = [dict(v=i*1000, label=`i` + 'Kb') for i in range(maximum/1000)]
+        #interval = (maximum/1024)*100
+#         print 'maximum:', maximum
+#         print 'interval:', interval
+
         self.options = {
             'axis': {
+                'tickSize' : 0,
+                'tickFontSize' : 11,
                 'x': {
                     'ticks': ticks,
                     'tickCount': 7,
                     'rotate': 90,
                 },
                 'y': {
-                    'tickCount': 5,
-                    'tickPrecision' : 0,
+                    #'ticks': yticks,
+                    #'tickCount': maximum/(1000*10),
+                    'tickCount': 10,
+                    #'tickPrecision' : 0,
+                    #'interval' : interval,
                 },
             },
             'background': {
                 'chartColor': '#d8e7ec',
-                'baseColor': '#efebe7',
-                'lineColor': '#444444'
-#                'hide': True,
+                'baseColor': '#ffffff',
+                'lineColor': '#444444',
+                'lineWidth ' : 1,
             },
             'padding': {
-                'left': 40,
-                'right': 10,
+                'left': 100,
+                'right': 20,
                 'top': 20,
                 'bottom': 60,
             },
             'legend': {
                 'hide': True,
             },
+            'yvals' : {
+                'show' : True,
+                'inside' : True,
+                'fontColor' : '#ffffff',
+            },
         }
 
         self.toplevel = drawing
@@ -70,11 +90,15 @@ class Gtk_Presentation(object):
         x, y, w, h, _ = widget.window.get_geometry()
         surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
 
-        cr = widget.window.cairo_create()   # cairo context
-        cr.set_source_surface(surface, 0, 0)
-
-        chart = pycha.bar.VerticalBarChart(surface, self.options)
+        chart = pycha.bar.HorizontalBarChart(surface, self.options)
         chart.addDataset(self.data)
         chart.render()
 
+        cr = widget.window.cairo_create()   # cairo context
+        cr.set_source_surface(surface, 0, 0)
         cr.paint()
+
+        # outline rectangle
+        cr.set_source_rgb(0, 0, 0)
+        cr.rectangle(0, 0, w, h)
+        cr.stroke()
index 5ca8666..d4850ff 100755 (executable)
@@ -34,12 +34,13 @@ class Gtk_Presentation(object):
 
         self.options = {
             'axis': {
+                'tickFontSize' : 11,
                 'x': {
                     'ticks': ticks,
-                }
+                },
             },
             'background': {
-                'hide': True,
+                'baseColor': '#ffffff',
             },
             'padding': {
                 'left': 10,
@@ -49,7 +50,7 @@ class Gtk_Presentation(object):
             },
             'legend': {
                 'hide': True,
-            }
+            },
         }
 
         self.toplevel = drawing
@@ -58,19 +59,15 @@ class Gtk_Presentation(object):
         x, y, w, h, _ = widget.window.get_geometry()
         surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
 
-        cr = widget.window.cairo_create()   # cairo context
-
-        cr.rectangle(0, 0, w, h)
-        cr.set_source_rgb(1, 1, 1)
-        cr.fill()
-        cr.set_source_rgb(0, 0, 0)
-        cr.rectangle(0, 0, w, h)
-        cr.stroke()
-
-        cr.set_source_surface(surface, 0, 0)
-
         chart = pycha.pie.PieChart(surface, self.options)
         chart.addDataset(self.data)
         chart.render()
 
+        cr = widget.window.cairo_create()   # cairo context
+        cr.set_source_surface(surface, 0, 0)
         cr.paint()
+
+        # outline rectangle
+        cr.set_source_rgb(0, 0, 0)
+        cr.rectangle(0, 0, w, h)
+        cr.stroke()