Pie charts?

View: New views
3 Messages — Rating Filter:   Alert me  

Pie charts?

by Ruslan Valiyev :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi all.

Does RRDTOOL support graphing pie charts?

_______________________________________________
rrd-developers mailing list
rrd-developers@...
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers

Re: Pie charts?

by Florian Forster-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Ruslan,

On Sun, Jun 22, 2008 at 05:39:26PM +0200, Ruslan Valiyev wrote:
> Does RRDTOOL support graphing pie charts?

no, as far as I know it doesn't. There has been a (short) discussion in
May 2007[0] and it's on the feature list for version 1.4[1], but I guess
nobody started on that yet.

Regards,
-octo

[0] <https://lists.oetiker.ch/pipermail/rrd-developers/2007-May/001920.html>
[1] <http://oss.oetiker.ch/rrdtool-trac/wiki/RRDtool14>
--
Florian octo Forster
Hacker in training
GnuPG: 0x91523C3D
http://verplant.org/


_______________________________________________
rrd-developers mailing list
rrd-developers@...
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers

signature.asc (196 bytes) Download Attachment

Re: Pie charts?

by Alex van den Bogaerdt :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sun, Jun 22, 2008 at 06:10:56PM +0200, Florian Forster wrote:
> Hi Ruslan,
>
> On Sun, Jun 22, 2008 at 05:39:26PM +0200, Ruslan Valiyev wrote:
> > Does RRDTOOL support graphing pie charts?
>
> no, as far as I know it doesn't. There has been a (short) discussion in
> May 2007[0] and it's on the feature list for version 1.4[1], but I guess
> nobody started on that yet.

Actually I have.  Unfortunately I had to postpone development for an as of
yet undetermined period.  At a time rrdtool had some beta code in it which
did work. This code can still be found in v1.2 (perhaps in 1.3 as well?)
but is currently made inactive.

Who knows, it may still work.

grep -i pie ~/svn/rrdtool-1.2/src/*graph*[ch]

/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:pie_part(image_desc_t *im, gfx_color_t color,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:            double PieCenterX, double PieCenterY, double Radius,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                PieCenterX+sin(startangle)*Radius,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                PieCenterY-cos(startangle)*Radius,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                PieCenterX,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                PieCenterY,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                PieCenterX+sin(endangle)*Radius,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                PieCenterY-cos(endangle)*Radius,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                PieCenterX+sin(angle)*Radius,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                PieCenterY-cos(angle)*Radius );
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:, int piechart
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:    ** |a| a|                               |  pie   |
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        Xpie     =0,        Ypie     =0,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:    if (piechart) {
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        im->piesize=im->xsize<im->ysize?im->xsize:im->ysize;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        Xpie=im->piesize;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        Ypie=im->piesize;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:       pie chart area. */
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:    im->ximg  += Xpie;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:    if (Xpie) im->ximg += Xspacing;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:    /* reserve space for main and/or pie */
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:    if (im->yimg < Ypie) im->yimg = Ypie;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        /* reposition Pie */
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:    /* The pie is placed in the upper right hand corner,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        im->pie_x = im->ximg - Xspacing - Xpie/2;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        im->pie_y = im->yorigin-Ymain+Ypie/2;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        im->pie_x = im->ximg/2;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        im->pie_y = im->yorigin-Ypie/2;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:  int piechart = 0;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:  double PieStart=0.0;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART  
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:  /* check if we need to draw a piechart */
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:      piechart=1;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:&&(piechart==0)
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:  /* If there's only the pie chart to draw, signal this */
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:  if (i==0) piechart=2;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:,piechart
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:  if (piechart != 2) {
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:  if (piechart) {
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:    pie_part(im,im->graph_col[GRC_CANVAS],im->pie_x,im->pie_y,im->piesize*0.5,0,2*M_PI);
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        pie_part(im,im->gdes[i].col,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                im->pie_x,im->pie_y,im->piesize*0.4,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                M_PI*2.0*PieStart/100.0,
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:                M_PI*2.0*(PieStart+im->gdes[i].yrule)/100.0);
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:        PieStart += im->gdes[i].yrule;
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:  if (piechart==2) {
/home/alex/svn/rrdtool-1.2/src/rrd_graph.c:/* copies input untill the first unescaped colon is found
/home/alex/svn/rrdtool-1.2/src/rrd_graph.h:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.h:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.h:    long   piesize;            /* size of the piechart */
/home/alex/svn/rrdtool-1.2/src/rrd_graph.h:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.h:    long           pie_x,pie_y;    /* where is the centerpoint */
/home/alex/svn/rrdtool-1.2/src/rrd_graph.h:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph.h:void pie_part(image_desc_t *, gfx_color_t, double, double, double, double, double);
/home/alex/svn/rrdtool-1.2/src/rrd_graph.h:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph_helper.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph_helper.c:#ifdef WITH_PIECHART
/home/alex/svn/rrdtool-1.2/src/rrd_graph_helper.c:#ifdef WITH_PIECHART

--
Alex van den Bogaerdt
http://www.vandenbogaerdt.nl/rrdtool/

_______________________________________________
rrd-developers mailing list
rrd-developers@...
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers