summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 274bf4b)
raw | patch | inline | side by side (parent: 274bf4b)
author | oetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa> | |
Tue, 12 Apr 2005 20:56:19 +0000 (20:56 +0000) | ||
committer | oetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa> | |
Tue, 12 Apr 2005 20:56:19 +0000 (20:56 +0000) |
print time ... this is more stable -- tobi
* remove the newline from ctime (%c) in VDEF -- alex
git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.2@400 a5681a0c-68f1-0310-ab6d-d61299d08faa
* remove the newline from ctime (%c) in VDEF -- alex
git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.2@400 a5681a0c-68f1-0310-ab6d-d61299d08faa
program/src/rrd_graph.c | patch | blob | history | |
program/src/rrd_graph.h | patch | blob | history |
index 95e3ed670628b1f91cb589fa0bad885b2481d34e..3840c2d09b7e4a8a217604a4b4bcd611a1f740fd 100644 (file)
--- a/program/src/rrd_graph.c
+++ b/program/src/rrd_graph.c
-/****************************************************************************
+/strfcmp/****************************************************************************
* RRDtool 1.2rc7 Copyright by Tobi Oetiker, 1997-2005
****************************************************************************
* rrd__graph.c produce graphs from data in rrdfiles
'E'};/* 10e18 Exa */
int symbcenter = 6;
- double digits;
+ double digits,viewdigits=0;
+ digits = floor( log( max( fabs(im->minval),fabs(im->maxval)))/log((double)im->base));
+
if (im->unitsexponent != 9999) {
/* unitsexponent = 9, 6, 3, 0, -3, -6, -9, etc */
- digits = floor(im->unitsexponent / 3);
+ viewdigits = floor(im->unitsexponent / 3);
} else {
- digits = floor( log( max( fabs(im->minval),fabs(im->maxval)))/log((double)im->base));
+ viewdigits = digits;
}
+
im->magfact = pow((double)im->base , digits);
#ifdef DEBUG
printf("digits %6.3f im->magfact %6.3f\n",digits,im->magfact);
#endif
- if ( ((digits+symbcenter) < sizeof(symbol)) &&
- ((digits+symbcenter) >= 0) )
- im->symbol = symbol[(int)digits+symbcenter];
+ im->viewfactor = im->magfact / pow((double)im->base , viewdigits);
+
+ pow((double)im->base , viewdigits);
+
+ if ( ((viewdigits+symbcenter) < sizeof(symbol)) &&
+ ((viewdigits+symbcenter) >= 0) )
+ im->symbol = symbol[(int)viewdigits+symbcenter];
else
im->symbol = '?';
}
if (!strcmp(im->gdes[i].format,"%c")) { /* VDEF time print */
char ctime_buf[128]; /* PS: for ctime_r, must be >= 26 chars */
+ int iii=0;
+ ctime_r(&printtime,ctime_buf);
+ while(isprint(ctime_buf[iii])){iii++};
+ ctime_buf[iii]='\0';
if (im->gdes[i].gf == GF_PRINT){
(*prdata)[prlines-2] = malloc((FMT_LEG_LEN+2)*sizeof(char));
- sprintf((*prdata)[prlines-2],"%s (%lu)",
- ctime_r(&printtime,ctime_buf),printtime);
+ sprintf((*prdata)[prlines-2],"%s (%lu)",ctime_buf,printtime);
(*prdata)[prlines-1] = NULL;
} else {
- sprintf(im->gdes[i].legend,"%s (%lu)",
- ctime_r(&printtime,ctime_buf),printtime);
+ sprintf(im->gdes[i].legend,"%s (%lu)",ctime_buf,printtime);
graphelement = 1;
}
} else {
if (i==0 || im->symbol == ' ') {
if(scaledstep < 1){
if(im->extra_flags & ALTYGRID) {
- sprintf(graph_label,im->ygrid_scale.labfmt,scaledstep*i);
+ sprintf(graph_label,im->ygrid_scale.labfmt,scaledstep*im->viewfactor*i);
}
else {
- sprintf(graph_label,"%4.1f",scaledstep*i);
+ sprintf(graph_label,"%4.1f",scaledstep*im->viewfactor*i);
}
} else {
- sprintf(graph_label,"%4.0f",scaledstep*i);
+ sprintf(graph_label,"%4.0f",scaledstep*im->viewfactor*i);
}
}else {
if(scaledstep < 1){
- sprintf(graph_label,"%4.1f %c",scaledstep*i, im->symbol);
+ sprintf(graph_label,"%4.1f %c",scaledstep*im->viewfactor*i, im->symbol);
} else {
- sprintf(graph_label,"%4.0f %c",scaledstep*i, im->symbol);
+ sprintf(graph_label,"%4.0f %c",scaledstep*im->viewfactor*i, im->symbol);
}
}
im->maxval = DNAN;
im->unitsexponent= 9999;
im->unitslength= 5;
+ im->symbol = ' ';
+ im->viewfactor = 1.0;
im->extra_flags= 0;
im->rigid = 0;
im->gridfit = 1;
strncpy(text_prop[i].font,rrd_win_default_font,sizeof(text_prop[i].font)-1);
text_prop[i].font[sizeof(text_prop[i].font)-1] = '\0';
}
+ }
}
#endif
{
index cf9964562a4e1c7e4fe7fc437b76efd735278d3f..58af260d532fa2f12b9006ad366058f6243faff6 100644 (file)
--- a/program/src/rrd_graph.h
+++ b/program/src/rrd_graph.h
double magfact; /* numerical magnitude*/
long base; /* 1000 or 1024 depending on what we graph */
char symbol; /* magnitude symbol for y-axis */
+ float viewfactor; /* how should the numbers on the y-axis be scaled for viewing ? */
int unitsexponent; /* 10*exponent for units on y-asis */
int unitslength; /* width of the yaxis labels */
int extra_flags; /* flags for boolean options */