From 4b254fdcdcd2d88e95946f7d475e2dd433128116 Mon Sep 17 00:00:00 2001 From: Eugene Gagarin Date: Thu, 7 May 2009 16:45:11 +0400 Subject: [PATCH] Diagrams improvements --- src/files/out_diabar.py | 46 +++++++++++++++++++++++++++++++++++----------- src/files/out_diapie.py | 25 +++++++++++-------------- 2 files changed, 46 insertions(+), 25 deletions(-) diff --git a/src/files/out_diabar.py b/src/files/out_diabar.py index e83d3ed..b6fbf52 100755 --- a/src/files/out_diabar.py +++ b/src/files/out_diabar.py @@ -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() diff --git a/src/files/out_diapie.py b/src/files/out_diapie.py index 5ca8666..d4850ff 100755 --- a/src/files/out_diapie.py +++ b/src/files/out_diapie.py @@ -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() -- 1.7.9.5