[rrd-users] Stacking...
Can't seem to get the stacking working... This is the graphing command: rrdtool graph test.png -i --end now --start -30m --width 600 \ --height 200 -l 0 --title 'DSL stats' \ DEF:dsratemi=/var/db/604t.rrd:dsrate:MIN \ DEF:usratemi=/var/db/604t.rrd:usrate:MIN \ AREA:usratemi#d0ffd0:Upstream \ AREA:dsratemi#d0d0ff:Downstream:STACK \ LINE2:usratemi#00FF00 \ LINE2:dsratemi#FF \ HRULE:0#00 \ The second area just goes straight over the top of the the first. I've had a look around for examples without success. Also, can't find a substitute for HRULE:0#00, LINE just complains about the '0'. Cheers -- Unsubscribe mailto:[EMAIL PROTECTED] Helpmailto:[EMAIL PROTECTED] Archive http://lists.ee.ethz.ch/rrd-users WebAdminhttp://lists.ee.ethz.ch/lsg2.cgi
[rrd-users] Stacking
I am working on creating a graph for my ping script. It collects, min, max and average response times. I have added the ::STACK for the AREA after the first AREA is defined. Problem is it adds the next two on top and moves it up a notch, e.g. Min response time is 0.42 (this is measured accurately and on the Y axis it shows it hits 0.42ms) but the next 2, e.g max response times, 0.64ms, it places it on top of the min area and when aligned with the Y axis it shows at 1.08ms, and then average, 0.60ms on top of that and shows aligned at the value of 1.68ms. Is there anyway to get the max and average to start at zero instead of from where the last area ended up at? So far I got this as my syntax: rrdtool.exe graph graph.png --title "Daily ICA Port Latency" --vertical-label "milliseconds" --slope-mode --start end-1d -X 0 DEF:def_min=latency.rrd:response:MIN DEF:def_max=latency.rrd:response:MAX DEF:def_avg=latency.rrd:response:AVERAGE CDEF:cdef_min=def_min,1000,/ CDEF:cdef_max=def_max,1000,/ CDEF:cdef_avg=def_avg,1000,/ VDEF:vdef_min=def_min,MINIMUM VDEF:vdef_max=def_max,MAXIMUM VDEF:vdef_avg=def_avg,AVERAGE AREA:def_min#54EC48 AREA:def_max#EC9D48::STACK AREA:def_avg#48C4EC::STACK PRINT:vdef_min:%.2lf PRINT:vdef_max:%.2lf PRINT:vdef_max:%.2lf thank you, Devante ___ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
Re: [rrd-users] Stacking
Devante Vargas wrote: > I am working on creating a graph for my ping script. It collects, min, max > and average response times. I have added the ::STACK for the AREA after the > first AREA is defined. Problem is it adds the next two on top and moves it up > a notch, e.g. Min response time is 0.42 (this is measured accurately and on > the Y axis it shows it hits 0.42ms) but the next 2, e.g max response times, > 0.64ms, it places it on top of the min area and when aligned with the Y axis > it shows at 1.08ms, and then average, 0.60ms on top of that and shows aligned > at the value of 1.68ms. > > Is there anyway to get the max and average to start at zero instead of from > where the last area ended up at? Several ways to do this, depending on what you want. One would be to plot an area for max, then an area for avg, then an area in white for min - no stack involved. So you end up with a colour band from min to avg, and a different colour band from avg to max. Another one I've used is : use a CDEF to get the difference between max and min, plot min in white (or transparent), then stack the CDEF on top of that, then draw a line for avg. I tend to use a solid colour for the line, and the same colour (but with a lot of transparency) for the min-max spread - that way the min-max spread area doesn't obliterate what's been plotted before. ___ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
[rrd-users] Stacking at Infinity
Hi, I am graphing class based interface statistics using RRDTOOL and I am trying to find a way to graph errors on the same graph. At the moment if I detect errors I am highlighting the background with an AREA using the INF or NEGINF functions. This works fine and I can see if I had errors during the period. An example of this is below: http://netnix.org/example.png However, I would like to enhance this further to give some indication of the class or classes that dropped traffic. For each of the classes I have tried to do the following: CDEF:DSxH=DSx,0,GT,INF,UNKN,IF LINE3:DSxH#xx This will draw a line at INF using the classes colour if errors were detected in that class. If multiple classes have drops then the line will get overwritten with the later colour. I could use transparency but then it is usually difficult to determine the colours. I have tried stacking, but it doesn't like stacking on top of infinity which sort of makes sense. If I had drops in two classes then I would like to see 2 lines stacked on top of each other in different colours at infinity or negative infinity for inbound drops. Is this possible or am I trying to push it to hard with my graphing requirements? Thanks, Chris ___ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
Re: [rrd-users] Stacking at Infinity
> CDEF:DSxH=DSx,0,GT,INF,UNKN,IF > LINE3:DSxH#xx > > This will draw a line at INF using the classes colour if errors were > detected in that class. If multiple classes have drops then the line > will get overwritten with the later colour. I could use transparency > but then it is usually difficult to determine the colours. I have > tried stacking, but it doesn't like stacking on top of infinity which > sort of makes sense. By definition you cannot graph *at* infinity. That is why this "value" was chosen to trick RRDtool to forget about autoscaling and just graph the portion already visible. Not only is stacking "on top of" infinity not defined, you would also, by definition, stack above (or under) the visible part of the graph and thus outside the viewport. What you want is the top of the graph, and infinity is just the tool you use to get there. Unless somebody extended the rudimentary VDEF framework, there currently is no way to find out dnamically what autoscaling is doing. But if you find out by other means (e.g. a double pass run, or by having a fixed maximum (as you seem to have)) then you can use that information to draw your lines at e.g. 95% of maximum and 90% of maximum. It's not exactly what you aim for now, but I hope it is matching what you're really after. > If I had drops in two classes then I would like to see 2 lines stacked > on top of each other in different colours at infinity or negative > infinity for inbound drops. One line at the top (or bottom) of the graph, then stack a suffient amount in the "wrong" direction. I never tried it, but stacking -50M "on top" of 150M should get you at 100M. HTH Alex ___ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
Re: [rrd-users] Stacking at Infinity
I have not fully understood how you want your graph to look visually. But maybe you can use TICK to draw your errors. I remember that I have done so to highlight times when we have exceeded predictions. You could obviously paint multiple TICKS for different types and paint them with different colors using transparency. As the color (de)coding may be a pain you possibly could draw multiple ticks of different fractions. Ciao, Martin On 03.03.2012, at 03:46, Alex van den Bogaerdt wrote: >> CDEF:DSxH=DSx,0,GT,INF,UNKN,IF >> LINE3:DSxH#xx >> >> This will draw a line at INF using the classes colour if errors were >> detected in that class. If multiple classes have drops then the line >> will get overwritten with the later colour. I could use transparency >> but then it is usually difficult to determine the colours. I have >> tried stacking, but it doesn't like stacking on top of infinity which >> sort of makes sense. > > By definition you cannot graph *at* infinity. That is why this "value" was > chosen to trick RRDtool to forget about autoscaling and just graph the > portion already visible. > > Not only is stacking "on top of" infinity not defined, you would also, by > definition, stack above (or under) the visible part of the graph and thus > outside the viewport. > > What you want is the top of the graph, and infinity is just the tool you > use to get there. > > Unless somebody extended the rudimentary VDEF framework, there currently > is no way to find out dnamically what autoscaling is doing. But if you > find out by other means (e.g. a double pass run, or by having a fixed > maximum (as you seem to have)) then you can use that information to draw > your lines at e.g. 95% of maximum and 90% of maximum. It's not exactly > what you aim for now, but I hope it is matching what you're really after. > >> If I had drops in two classes then I would like to see 2 lines stacked >> on top of each other in different colours at infinity or negative >> infinity for inbound drops. > > One line at the top (or bottom) of the graph, then stack a suffient amount > in the "wrong" direction. I never tried it, but stacking -50M "on top" of > 150M should get you at 100M. > > HTH > Alex > > > ___ > rrd-users mailing list > rrd-users@lists.oetiker.ch > https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users ___ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
Re: [rrd-users] Stacking at Infinity
Hi, > One line at the top (or bottom) of the graph, then stack a suffient amount > in the "wrong" direction. I never tried it, but stacking -50M "on top" of > 150M should get you at 100M. So this works normally when not working at infinity: LINE3:100#FF LINE3:-1#00FF00::STACK I assumed the LINE would take into consideration the lines width when stacking so I could use -1 as the value. This doesn't seem to work and I have to use an actual value but this value would be dependant on the scale of the data. However, when I draw the first line at INF then it doesn't seem to work and have looked into the possibility of achieving the desired affect using TICKs as suggested by Martin: > I remember that I have done so to highlight times when we have exceeded > predictions. > You could obviously paint multiple TICKS for different types and paint them > with different colors using transparency. > As the color (de)coding may be a pain you possibly could draw multiple ticks > of different fractions. This looks promising and I have used the following to get my desired affect: AREA:ifOutDropsH#FF55 TICK:DS3#FF:-0.03 TICK:DS2#FF:-0.02 TICK:DS1#00FF00:-0.01 ** ifOutDrops is INF or NEGINF if drops detected. This is so close to what I want to achieve, where each TICK is 1% of the Y axis. To get a stacking affect I am overlapping TICKs with the bottom one being slightly taller than the next one. Now, this works if all classes have drops in, but in most cases they don't and it is only a single class which has drops. If it was DS3 and DS1 then the DS3 TICK would be visibly 2% tall as opposed to 1%. Is it possible to calculate the fraction dynamically depending if I have drops in the classes or is there an alternative approach? Thanks, Chris ___ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
Re: [rrd-users] Stacking at Infinity
Hi! What about the following: CDEF:CNTUNKN=DS1,UN,1,0,IF,DS2,UN,1,0,IF,+,DS3,UN,1,0,IF,+ CDEF:TICK1=CNTUNKN,1,EQ,1,UNKN,IF CDEF:TICK2=CNTUNKN,2,EQ,1,UNKN,IF CDEF:TICK3=CNTUNKN,3,EQ,1,UNKN,IF TICK:TICK1#FF:-0.03 TICK:TICK2#00FF00:-0.02 TICK:TICK3#FF:-0.01 (I did not test the CDEF, so they may not be perfect) Obviouly you could make more cdefs if you even need to know which one is the "bad" one... You could alsp play with the alpha color channel instead when graphing... Ciao, Martin On 03.03.2012, at 13:44, Chris Mason wrote: > Hi, > >> One line at the top (or bottom) of the graph, then stack a suffient amount >> in the "wrong" direction. I never tried it, but stacking -50M "on top" of >> 150M should get you at 100M. > > So this works normally when not working at infinity: > > LINE3:100#FF > LINE3:-1#00FF00::STACK > > I assumed the LINE would take into consideration the lines width when > stacking so I could use -1 as the value. This doesn't seem to work and > I have to use an actual value but this value would be dependant on the > scale of the data. > > However, when I draw the first line at INF then it doesn't seem to > work and have looked into the possibility of achieving the desired > affect using TICKs as suggested by Martin: > >> I remember that I have done so to highlight times when we have exceeded >> predictions. >> You could obviously paint multiple TICKS for different types and paint them >> with different colors using transparency. >> As the color (de)coding may be a pain you possibly could draw multiple ticks >> of different fractions. > > This looks promising and I have used the following to get my desired affect: > > AREA:ifOutDropsH#FF55 > TICK:DS3#FF:-0.03 > TICK:DS2#FF:-0.02 > TICK:DS1#00FF00:-0.01 > > ** ifOutDrops is INF or NEGINF if drops detected. > > This is so close to what I want to achieve, where each TICK is 1% of > the Y axis. To get a stacking affect I am overlapping TICKs with the > bottom one being slightly taller than the next one. > > Now, this works if all classes have drops in, but in most cases they > don't and it is only a single class which has drops. If it was DS3 and > DS1 then the DS3 TICK would be visibly 2% tall as opposed to 1%. > > Is it possible to calculate the fraction dynamically depending if I > have drops in the classes or is there an alternative approach? > > Thanks, > Chris ___ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
Re: [rrd-users] Stacking at Infinity
OK, so assuming those 3: Here a "Red/green" colorcoding you could also use: CDEF:DS1GREEN=DS1,UN,0,1,IF CDEF:DS1RED=DS1,UN,1,0,IF CDEF:DS2GREEN=DS2,UN,0,1,IF CDEF:DS2RED=DS2,UN,1,0,IF CDEF:DS3GREEN=DS3,UN,0,1,IF CDEF:DS3RED=DS3,UN,1,0,IF TICK:DS1GREEN#00ff00:-.03 TICK:DS1RED#ff:-.03 TICK:DS2GREEN#00ff00:-.02 TICK:DS2RED#ff:-.02 TICK:DS3GREEN#00ff00:-.01 TICK:DS3RED#ff:-.01 # here graph the other stuff (on top of the ticks!) Then you would get 3 stripes that are green/red in the relevant sections of the DS being undefined If you want even "bars" separating those 3 sections: add the following: CDEF:bar=1 TICK:DS1GREEN#00ff00:-.03 TICK:DS1RED#ff:-.03 TICK:bar#00:-0.21 TICK:DS2GREEN#00ff00:-.02 TICK:DS2RED#ff:-.02 TICK:bar#00:-0.11 TICK:DS3GREEN#00ff00:-.01 TICK:DS3RED#ff:-.01 that should show bars all the length of the graph with green/red in between I also have sent a patch to Tobi to allow TICK to use the values of the DEF/CDEF itself as the fraction - so this could mean a non-constant fraction... This may also be helpful in some usecases to present data... Ciao, Martin On 03.03.2012, at 13:44, Chris Mason wrote: > Hi, > >> One line at the top (or bottom) of the graph, then stack a suffient amount >> in the "wrong" direction. I never tried it, but stacking -50M "on top" of >> 150M should get you at 100M. > > So this works normally when not working at infinity: > > LINE3:100#FF > LINE3:-1#00FF00::STACK > > I assumed the LINE would take into consideration the lines width when > stacking so I could use -1 as the value. This doesn't seem to work and > I have to use an actual value but this value would be dependant on the > scale of the data. > > However, when I draw the first line at INF then it doesn't seem to > work and have looked into the possibility of achieving the desired > affect using TICKs as suggested by Martin: > >> I remember that I have done so to highlight times when we have exceeded >> predictions. >> You could obviously paint multiple TICKS for different types and paint them >> with different colors using transparency. >> As the color (de)coding may be a pain you possibly could draw multiple ticks >> of different fractions. > > This looks promising and I have used the following to get my desired affect: > > AREA:ifOutDropsH#FF55 > TICK:DS3#FF:-0.03 > TICK:DS2#FF:-0.02 > TICK:DS1#00FF00:-0.01 > > ** ifOutDrops is INF or NEGINF if drops detected. > > This is so close to what I want to achieve, where each TICK is 1% of > the Y axis. To get a stacking affect I am overlapping TICKs with the > bottom one being slightly taller than the next one. > > Now, this works if all classes have drops in, but in most cases they > don't and it is only a single class which has drops. If it was DS3 and > DS1 then the DS3 TICK would be visibly 2% tall as opposed to 1%. > > Is it possible to calculate the fraction dynamically depending if I > have drops in the classes or is there an alternative approach? > > Thanks, > Chris ___ rrd-users mailing list rrd-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
Re: [rrd-users] Stacking at Infinity
Hi Martin, Thank you for taking your time to respond. To ensure I understand this correctly, this will print a TICK on the graph for each DS. It will either be RED or GREEN depending on the value of the DS? The problem I have is I am graphing classes for QoS with a different number of classes per graph. I would prefer it to only show TICKs if I have drops within that class and I would like the TICK to be the same colour as the Octets for that class. E.g: Class1Drops = 0 Class2Drops = 100 Class3Drops = 0 Class4Drops = 57 I have also defined ClassXOctets for each respective class which is coloured according to an algorithm. If I detect drops in any of the classes then I draw the background red using INF/NEGINF. However, to identify the specific classes I wanted to draw a TICK using the colour of that class. The above scenario would result in 3 TICKs being printed on the graph using the respective colour of that class. I suppose it would be nice to have TICK stacking where I could append '::STACK' to the end of sequential TICKs. In the event of using a CDEF for the fraction value I am still struggling to work out how to achieve the desired result because I would have to start with the highest fraction value. I am not sure if the following would work: CDEF:BASE1=0,-0.1,+ CDEF:C1F=Class1Drops,0,GT,BASE1,0,IF CDEF:BASE2=Class1Drops,0,GT,BASE1,-0.01,+,BASE1,IF CDEF:C2F=Class2Drops,0,GT,BASE2,0,IF CDEF:BASE3=Class2Drops,0,GT,BASE2,-0.01,+,BASE2,IF CDEF:C3F=Class3Drops,0,GT,BASE3,0,IF CDEF:BASE4=Class3Drops,0,GT,BASE3,-0.01,+,BASE3,IF CDEF:C4F=Class4Drops,0,GT,BASE4,0,IF TICK:Class4Drops#A:C4F TICK:Class3Drops#B:C3F TICK:Class2Drops#C:C2F TICK:Class1Drops#D:C1F Thanks, Chris On 4 March 2012 12:52, Martin Sperl wrote: > OK, so assuming those 3: > Here a "Red/green" colorcoding you could also use: > CDEF:DS1GREEN=DS1,UN,0,1,IF > CDEF:DS1RED=DS1,UN,1,0,IF > CDEF:DS2GREEN=DS2,UN,0,1,IF > CDEF:DS2RED=DS2,UN,1,0,IF > CDEF:DS3GREEN=DS3,UN,0,1,IF > CDEF:DS3RED=DS3,UN,1,0,IF > TICK:DS1GREEN#00ff00:-.03 > TICK:DS1RED#ff:-.03 > TICK:DS2GREEN#00ff00:-.02 > TICK:DS2RED#ff:-.02 > TICK:DS3GREEN#00ff00:-.01 > TICK:DS3RED#ff:-.01 > # here graph the other stuff (on top of the ticks!) > > Then you would get 3 stripes that are green/red in the relevant sections of > the DS being undefined > > If you want even "bars" separating those 3 sections: > add the following: > CDEF:bar=1 > TICK:DS1GREEN#00ff00:-.03 > TICK:DS1RED#ff:-.03 > TICK:bar#00:-0.21 > TICK:DS2GREEN#00ff00:-.02 > TICK:DS2RED#ff:-.02 > TICK:bar#00:-0.11 > TICK:DS3GREEN#00ff00:-.01 > TICK:DS3RED#ff:-.01 > > that should show bars all the length of the graph with green/red in between > > I also have sent a patch to Tobi to allow TICK to use the values of the > DEF/CDEF itself as the fraction - so this could mean a non-constant > fraction... > This may also be helpful in some usecases to present data... > > Ciao, > Martin > > On 03.03.2012, at 13:44, Chris Mason wrote: > >> Hi, >> >>> One line at the top (or bottom) of the graph, then stack a suffient amount >>> in the "wrong" direction. I never tried it, but stacking -50M "on top" of >>> 150M should get you at 100M. >> >> So this works normally when not working at infinity: >> >> LINE3:100#FF >> LINE3:-1#00FF00::STACK >> >> I assumed the LINE would take into consideration the lines width when >> stacking so I could use -1 as the value. This doesn't seem to work and >> I have to use an actual value but this value would be dependant on the >> scale of the data. >> >> However, when I draw the first line at INF then it doesn't seem to >> work and have looked into the possibility of achieving the desired >> affect using TICKs as suggested by Martin: >> >>> I remember that I have done so to highlight times when we have exceeded >>> predictions. >>> You could obviously paint multiple TICKS for different types and paint them >>> with different colors using transparency. >>> As the color (de)coding may be a pain you possibly could draw multiple >>> ticks of different fractions. >> >> This looks promising and I have used the following to get my desired affect: >> >> AREA:ifOutDropsH#FF55 >> TICK:DS3#FF:-0.03 >> TICK:DS2#FF:-0.02 >> TICK:DS1#00FF00:-0.01 >> >> ** ifOutDrops is INF or NEGINF if drops detected. >> >> This is so close to what I want to achieve, where each TICK is 1% of >> the Y axis. To get a stacking affect I am overlapping TICKs with the >> bottom one being slightly taller than the next one. >> >> Now, this works if all classes have drops in, but in most cases they >> don't and it is only a single class which has drops. If it was DS3 and >> DS1 then the DS3 TICK would be visibly 2% tall as opposed to 1%. >> >> Is it possible to calculate the fraction dynamically depending if I >> have drops in the classes or is there an alternative approach? >> >> Thanks, >> Chris > _
Re: [rrd-users] Stacking at Infinity
Hi Chris! What you are requesting is currently not possible - at least not easily. The only thing I can offer you as am option is this "red/green" approach - which is not 100% what you want. As for using the cdef as fraction - I did not say that it may work for you fully, but it may come close if used in this manner CDEF:C1=Class1Drops,0,GT,-0.01,0,IF CDEF:C2=Class2Drops,0,GT,-0.01,0,IF CDEF:C3=Class3Drops,0,GT,-0.01,0,IF CDEF:C4=Class4Drops,0,GT,-0.01,0,IF CDEF:C12=c1,c2,+ CDEF:C123=c12,c3,+ CDEF:C1234=c123,c4,+ TICK:C1234#DD:vname:yourlabel TICK:C123#CC:vname:yourlabel TICK:C12#BB:vname:yourlabel TICK:C1#AA:vname:yourlabel this should essentially produce the result of manual "stacking" of ticks... Ciao, Martin On 04.03.2012, at 22:12, Chris Mason wrote: > Hi Martin, > > Thank you for taking your time to respond. > > To ensure I understand this correctly, this will print a TICK on the > graph for each DS. It will either be RED or GREEN depending > on the value of the DS? > > The problem I have is I am graphing classes for QoS with a different > number of classes per graph. I would prefer it to only show TICKs if I > have drops within that class and I would like the TICK to be the same > colour as the Octets for that class. > > E.g: > > Class1Drops = 0 > Class2Drops = 100 > Class3Drops = 0 > Class4Drops = 57 > > I have also defined ClassXOctets for each respective class which is > coloured according to an algorithm. If I detect drops in any of the > classes then I draw the background red using INF/NEGINF. However, to > identify the specific classes I wanted to draw a TICK using the colour > of that class. > > The above scenario would result in 3 TICKs being printed on the graph > using the respective colour of that class. I suppose it would be nice > to have TICK stacking where I could append '::STACK' to the end of > sequential TICKs. > > In the event of using a CDEF for the fraction value I am still > struggling to work out how to achieve the desired result because I > would have to start with the highest fraction value. I am not sure if > the following would work: > > CDEF:BASE1=0,-0.1,+ > CDEF:C1F=Class1Drops,0,GT,BASE1,0,IF > > CDEF:BASE2=Class1Drops,0,GT,BASE1,-0.01,+,BASE1,IF > CDEF:C2F=Class2Drops,0,GT,BASE2,0,IF > > CDEF:BASE3=Class2Drops,0,GT,BASE2,-0.01,+,BASE2,IF > CDEF:C3F=Class3Drops,0,GT,BASE3,0,IF > > CDEF:BASE4=Class3Drops,0,GT,BASE3,-0.01,+,BASE3,IF > CDEF:C4F=Class4Drops,0,GT,BASE4,0,IF > > TICK:Class4Drops#A:C4F > TICK:Class3Drops#B:C3F > TICK:Class2Drops#C:C2F > TICK:Class1Drops#D:C1F > > Thanks, > Chris > > On 4 March 2012 12:52, Martin Sperl wrote: >> OK, so assuming those 3: >> Here a "Red/green" colorcoding you could also use: >> CDEF:DS1GREEN=DS1,UN,0,1,IF >> CDEF:DS1RED=DS1,UN,1,0,IF >> CDEF:DS2GREEN=DS2,UN,0,1,IF >> CDEF:DS2RED=DS2,UN,1,0,IF >> CDEF:DS3GREEN=DS3,UN,0,1,IF >> CDEF:DS3RED=DS3,UN,1,0,IF >> TICK:DS1GREEN#00ff00:-.03 >> TICK:DS1RED#ff:-.03 >> TICK:DS2GREEN#00ff00:-.02 >> TICK:DS2RED#ff:-.02 >> TICK:DS3GREEN#00ff00:-.01 >> TICK:DS3RED#ff:-.01 >> # here graph the other stuff (on top of the ticks!) >> >> Then you would get 3 stripes that are green/red in the relevant sections of >> the DS being undefined >> >> If you want even "bars" separating those 3 sections: >> add the following: >> CDEF:bar=1 >>TICK:DS1GREEN#00ff00:-.03 >>TICK:DS1RED#ff:-.03 >> TICK:bar#00:-0.21 >>TICK:DS2GREEN#00ff00:-.02 >>TICK:DS2RED#ff:-.02 >> TICK:bar#00:-0.11 >>TICK:DS3GREEN#00ff00:-.01 >>TICK:DS3RED#ff:-.01 >> >> that should show bars all the length of the graph with green/red in between >> >> I also have sent a patch to Tobi to allow TICK to use the values of the >> DEF/CDEF itself as the fraction - so this could mean a non-constant >> fraction... >> This may also be helpful in some usecases to present data... >> >> Ciao, >>Martin >> >> On 03.03.2012, at 13:44, Chris Mason wrote: >> >>> Hi, >>> One line at the top (or bottom) of the graph, then stack a suffient amount in the "wrong" direction. I never tried it, but stacking -50M "on top" of 150M should get you at 100M. >>> >>> So this works normally when not working at infinity: >>> >>> LINE3:100#FF >>> LINE3:-1#00FF00::STACK >>> >>> I assumed the LINE would take into consideration the lines width when >>> stacking so I could use -1 as the value. This doesn't seem to work and >>> I have to use an actual value but this value would be dependant on the >>> scale of the data. >>> >>> However, when I draw the first line at INF then it doesn't seem to >>> work and have looked into the possibility of achieving the desired >>> affect using TICKs as suggested by Martin: >>> I remember that I have done so to highlight times when we have exceeded predictions. You could obviously paint multiple TICKS for different types and paint them