X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_graph.c;h=da0b9d035bc205598b4dd45c77264a1a15e4f448;hb=5a7eb5b62b485b61ddb80a40ef22f4337cf2289f;hp=b01bd3a365c2d35547cd0fb731fa174371696634;hpb=6a44cbfd5498d9e489bca574feeafb968a5dc8a6;p=rrdtool.git diff --git a/src/rrd_graph.c b/src/rrd_graph.c index b01bd3a..da0b9d0 100644 --- a/src/rrd_graph.c +++ b/src/rrd_graph.c @@ -1,5 +1,5 @@ /**************************************************************************** - * RRDtool 1.2.1 Copyright by Tobi Oetiker, 1997-2005 + * RRDtool 1.2.5 Copyright by Tobi Oetiker, 1997-2005 **************************************************************************** * rrd__graph.c produce graphs from data in rrdfiles ****************************************************************************/ @@ -1582,14 +1582,14 @@ calc_horizontal_grid(image_desc_t *im) else { for(i=0;ylab[i].grid > 0;i++){ pixel = im->ysize / (scaledrange / ylab[i].grid); - if (pixel > 5) { + if (pixel > 7) { gridind = i; break; } } for(i=0; i<4;i++) { - if (pixel * ylab[gridind].lfac[i] >= 2 * im->text_prop[TEXT_PROP_AXIS].size) { + if (pixel * ylab[gridind].lfac[i] >= 2.5 * im->text_prop[TEXT_PROP_AXIS].size) { im->ygrid_scale.labfact = ylab[gridind].lfac[i]; break; } @@ -1614,14 +1614,16 @@ int draw_horizontal_grid(image_desc_t *im) int sgrid = (int)( im->minval / im->ygrid_scale.gridstep - 1); int egrid = (int)( im->maxval / im->ygrid_scale.gridstep + 1); + double MaxY; scaledstep = im->ygrid_scale.gridstep/im->magfact; + MaxY = scaledstep*(double)im->viewfactor*(double)egrid; for (i = sgrid; i <= egrid; i++){ double Y0=ytr(im,im->ygrid_scale.gridstep*i); if ( Y0 >= im->yorigin-im->ysize && Y0 <= im->yorigin){ if(i % im->ygrid_scale.labfact == 0){ if (i==0 || im->symbol == ' ') { - if(scaledstep < 1){ + if(MaxY < 10) { if(im->extra_flags & ALTYGRID) { sprintf(graph_label,im->ygrid_scale.labfmt,scaledstep*im->viewfactor*i); } @@ -1632,7 +1634,7 @@ int draw_horizontal_grid(image_desc_t *im) sprintf(graph_label,"%4.0f",scaledstep*im->viewfactor*i); } }else { - if(scaledstep < 1){ + if(MaxY < 10){ sprintf(graph_label,"%4.1f %c",scaledstep*im->viewfactor*i, im->symbol); } else { sprintf(graph_label,"%4.0f %c",scaledstep*im->viewfactor*i, im->symbol); @@ -1942,7 +1944,7 @@ grid_paint(image_desc_t *im) /* yaxis unit description */ gfx_new_text( im->canvas, - 12, (im->yorigin - im->ysize/2), + 10, (im->yorigin - im->ysize/2), im->graph_col[GRC_FONT], im->text_prop[TEXT_PROP_UNIT].font, im->text_prop[TEXT_PROP_UNIT].size, im->tabwidth, @@ -1961,9 +1963,9 @@ grid_paint(image_desc_t *im) /* rrdtool 'logo' */ gfx_new_text( im->canvas, im->ximg-7, 7, - 0xbfbfbfff, + ( im->graph_col[GRC_FONT] & 0xffffff00 ) | 0x00000044, im->text_prop[TEXT_PROP_AXIS].font, - 5, im->tabwidth, 270, + 5.5, im->tabwidth, 270, GFX_H_RIGHT, GFX_V_TOP, "RRDTOOL / TOBI OETIKER"); @@ -1987,30 +1989,38 @@ grid_paint(image_desc_t *im) if ( im->gdes[i].gf != GF_PRINT && im->gdes[i].gf != GF_GPRINT && im->gdes[i].gf != GF_COMMENT) { - int boxH, boxV; + int boxL, boxH, boxV; - boxH = gfx_get_text_width(im->canvas, 0, + boxL = gfx_get_text_width(im->canvas, 0, im->text_prop[TEXT_PROP_LEGEND].font, im->text_prop[TEXT_PROP_LEGEND].size, - im->tabwidth,"M", 0)*1.2; - boxV = boxH; + im->tabwidth,"oo", 0); + boxH = boxL / 1.9; + boxV = boxH+1; /* make sure transparent colors show up all the same */ + node = gfx_new_area(im->canvas, + X0-1,Y0-boxV, + X0-1,Y0+1, + X0+boxL+0.5,Y0+1, + im->graph_col[GRC_BACK]); + gfx_add_point ( node, X0+boxL+0.5, Y0-boxV ); node = gfx_new_area(im->canvas, - X0,Y0-boxV, - X0,Y0, + X0-1,Y0-boxV, + X0-1,Y0, X0+boxH,Y0, im->graph_col[GRC_CANVAS]); gfx_add_point ( node, X0+boxH, Y0-boxV ); node = gfx_new_area(im->canvas, - X0,Y0-boxV, - X0,Y0, + X0-1,Y0-boxV, + X0-1,Y0, X0+boxH,Y0, im->gdes[i].col); gfx_add_point ( node, X0+boxH, Y0-boxV ); node = gfx_new_line(im->canvas, - X0,Y0-boxV, X0,Y0, + X0-1,Y0-boxV, + X0-1,Y0, 1,im->graph_col[GRC_FONT]); gfx_add_point(node,X0+boxH,Y0); gfx_add_point(node,X0+boxH,Y0-boxV); @@ -2180,7 +2190,7 @@ graph_size_location(image_desc_t *im, int elements im->text_prop[TEXT_PROP_AXIS].font, im->text_prop[TEXT_PROP_AXIS].size, im->tabwidth, - "0", 0) * im->unitslength + Xspacing; + "0", 0) * im->unitslength; } }