Contents
Login Register Wishes Forum About
Language Reference » Drawing functions » drawXThreshold
Help topics
Latest updates
2090d  replaceImageMapTitle
2090d  replaceImageMapValues
2090d  createFunctionSerie
2090d  setAbsicssaPosition
2090d  negateValues
Toolbox
  Download as PDF
  Print this page
  Share this page
  Create an account
  Feed the updates!
Google AdSense
drawXThreshold - Draw a vertical threshold in the chart area

This function will draw a vertical threshold in the chart area. Using thresholds can help you to highlight specific values. It is possible to tune the rendering by playing with the $Format array. To learn more about this please read the Format array guide.

Calling this function
drawXThreshold($Value,$Format="");
Where :

Value is the index of the point or its abscissa name. (setting ValueIsLabel to TRUE)
Format is an array containing the drawing parameters of the arrow.

This function returns an array containing the Y position of the threshold line.

Customisation array - Tune up your threshold!

It is possible to customize the way your threshold will be rendered by playing with this array. Providing a detailled configuration is not mandatory, by default the line will be drawn dashed in red.

You can specify the line color using R,G,B.
You can specify the line alpha factor using Alpha.
You can specify the line tick width with Ticks.
You can choose to write a caption over the threshold setting WriteCaption to TRUE.
By default the value of the threshold will be written, this can be override setingCaption to whatever you want.
You can specify an offset to the alignement axis with CaptionOffset to TRUE.
The color of the caption can be set using CaptionR,CaptionG,CaptionB.
The alpha transparency of the caption can be set using CaptionAlpha.
You can specify if the threshold will reach the axis bar even if margin are defined setting NoMargin to TRUE.
You can decide to draw a box under the caption setting DrawBox. to TRUE.


If you choose to draw a box under the caption, all the drawText() extended styles can be used (DrawBoxBorder,BorderOffset,BoxRounded, ...) to have the complete list of parameters, take a look at the drawText() page.

The captions can be aligned using CaptionAlign the following ways :

CAPTION_LEFT_TOP on the top or left side (depending of the scale orientation).
CAPTION_RIGHT_BOTTOM on the bottom or right side (depending of the scale orientation).

Sample script



 /* pChart library inclusions */ 
 include("../class/pData.class.php"); 
 include("../class/pDraw.class.php"); 
 include("../class/pImage.class.php"); 

 /* Create and populate the pData object */ 
 $MyData = new pData();   
 $MyData->addPoints(array(24,-25,26,25,25),"Temperature"); 
 $MyData->setAxisName(0,"Temperatures"); 
 $MyData->addPoints(array("Jan","Feb","Mar","Apr","May","Jun"),"Labels"); 
 $MyData->setSerieDescription("Labels","Months"); 
 $MyData->setAbscissa("Labels"); 

 /* Create the pChart object */ 
 $myPicture = new pImage(700,230,$MyData); 

 /* Draw the background */ 
 $Settings = array("R"=>170, "G"=>183, "B"=>87, "Dash"=>1, "DashR"=>190, "DashG"=>203, "DashB"=>107);
 $myPicture->drawFilledRectangle(0,0,700,230,$Settings); 

 /* Overlay with a gradient */ 
 $Settings = array("StartR"=>219, "StartG"=>231, "StartB"=>139, "EndR"=>1, "EndG"=>138, "EndB"=>68, "Alpha"=>50);
  $myPicture->drawGradientArea(0,0,700,230,DIRECTION_VERTICAL,$Settings); 
 $myPicture->drawGradientArea(0,0,700,20,DIRECTION_VERTICAL,array("StartR"=>0,"StartG"=>0,"StartB"=>0,"EndR"=>50,"EndG"=>50,"EndB"=>50,"Alpha"=>80));
 
 /* Add a border to the picture */ 
 $myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0)); 
  
 /* Write the picture title */  
 $myPicture->setFontProperties(array("FontName"=>"../fonts/Silkscreen.ttf","FontSize"=>6));
 $myPicture->drawText(10,13,"drawThreshold() - draw a treshold in the charting area",array("R"=>255,"G"=>255,"B"=>255));
 
 /* Write the chart title */  
 $myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>11));
  $myPicture->drawText(250,55,"My chart title",array("FontSize"=>20,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));
 
 /* Draw the scale and do some cosmetics */  
 $myPicture->setGraphArea(60,60,450,190); 
 $myPicture->drawFilledRectangle(70,70,440,180,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10));
 $myPicture->drawScale(array("XMargin"=>10,"YMargin"=>10,"Floating"=>TRUE,"DrawSubTicks"=>TRUE));
 $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>20)); 
 
 /* Draw static thresholds */  
 $myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>10));
 $myPicture->drawXThreshold("Feb",array("ValueIsLabel"=>TRUE,"WriteCaption"=>TRUE,"Caption"=>"Step 1","Alpha"=>70,"Ticks"=>1));
 $myPicture->drawXThreshold(2,array("WriteCaption"=>TRUE,"Caption"=>"Step 2","Alpha"=>70,"Ticks"=>2,"R"=>0,"G"=>0,"B"=>255));
 
 /* Disable shadow computing */  
 $myPicture->setShadow(FALSE); 

 /* Draw the scale and do some cosmetics */  
 $myPicture->setGraphArea(500,60,670,190); 
 $myPicture->drawFilledRectangle(505,65,665,185,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10));
 $myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>11));
 $myPicture->drawScale(array("XMargin"=>5,"YMargin"=>5,"Floating"=>TRUE,"Pos"=>SCALE_POS_TOPBOTTOM,"DrawSubTicks"=>TRUE));
 $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>20)); 
 
 /* Draw static thresholds */  
 $myPicture->drawXThreshold(array(1,3),array("Alpha"=>70,"Ticks"=>1)); 
 $myPicture->drawXThreshold(2,array("Alpha"=>70,"Ticks"=>2,"R"=>0,"G"=>0,"B"=>255));
 
 /* Render the picture (choose the best way) */ 
 $myPicture->autoOutput("pictures/example.drawXThreshold.png");
Last updated on 09/09/2011 
by Jean-Damien 
Linked resources
  There is no linked topic yet.
Community comments
  No comments have been posted yet.
© Copyrights
Components used on this web site : Famfamfam icons has been made by Mark James, Rounded corners lite has been coded by Cameron Cooke and Tim Hutchison, SyntaxHighlighter has been written by Alex Gorbatchev. pChart and this web site have been created by Jean-Damien POGOLOTTI. This documentation contains 185 pages and 56 comments. 409 users have registered. This page has been rendered in 0,01 seconds. Wiki revision 1.37.