function StrokeAxis() { // Stroke axis if ($this->iAxisStyle != AXSTYLE_SIMPLE) { switch ($this->iAxisStyle) { case AXSTYLE_BOXIN: $toppos = SIDE_DOWN; $bottompos = SIDE_UP; $leftpos = SIDE_RIGHT; $rightpos = SIDE_LEFT; break; case AXSTYLE_BOXOUT: $toppos = SIDE_UP; $bottompos = SIDE_DOWN; $leftpos = SIDE_LEFT; $rightpos = SIDE_RIGHT; break; case AXSTYLE_YBOXIN: $toppos = -100; $bottompos = SIDE_UP; $leftpos = SIDE_RIGHT; $rightpos = SIDE_LEFT; break; case AXSTYLE_YBOXOUT: $toppos = -100; $bottompos = SIDE_DOWN; $leftpos = SIDE_LEFT; $rightpos = SIDE_RIGHT; break; default: JpGRaphError::Raise('Unknown AxisStyle() : ' . $this->iAxisStyle); break; } $this->xaxis->SetPos('min'); // By default we hide the first label so it doesn't cross the // Y-axis in case the positon hasn't been set by the user. // However, if we use a box we always want the first value // displayed so we make sure it will be displayed. $this->xscale->ticks->SupressFirst(false); $this->xaxis->SetLabelSide(SIDE_DOWN); $this->xaxis->scale->ticks->SetSide($bottompos); $this->xaxis->Stroke($this->yscale); if ($toppos != -100) { // To avoid side effects we work on a new copy $maxis = $this->xaxis; $maxis->SetPos('max'); $maxis->SetLabelSide(SIDE_UP); $maxis->SetLabelMargin(7); $this->xaxis->scale->ticks->SetSide($toppos); $maxis->Stroke($this->yscale); } $this->yaxis->SetPos('min'); $this->yaxis->SetLabelMargin(10); $this->yaxis->SetLabelSide(SIDE_LEFT); $this->yaxis->scale->ticks->SetSide($leftpos); $this->yaxis->Stroke($this->xscale); $myaxis = $this->yaxis; $myaxis->SetPos('max'); $myaxis->SetLabelMargin(10); $myaxis->SetLabelSide(SIDE_RIGHT); $myaxis->title->Set(''); $myaxis->scale->ticks->SetSide($rightpos); $myaxis->Stroke($this->xscale); } else { $this->xaxis->Stroke($this->yscale); $this->yaxis->Stroke($this->xscale); } }
function StrokeAxis($aStrokeLabels = true) { if ($aStrokeLabels) { $this->StrokeAxisLabelBackground(); } // Stroke axis if ($this->iAxisStyle != AXSTYLE_SIMPLE) { switch ($this->iAxisStyle) { case AXSTYLE_BOXIN: $toppos = SIDE_DOWN; $bottompos = SIDE_UP; $leftpos = SIDE_RIGHT; $rightpos = SIDE_LEFT; break; case AXSTYLE_BOXOUT: $toppos = SIDE_UP; $bottompos = SIDE_DOWN; $leftpos = SIDE_LEFT; $rightpos = SIDE_RIGHT; break; case AXSTYLE_YBOXIN: $toppos = FALSE; $bottompos = SIDE_UP; $leftpos = SIDE_RIGHT; $rightpos = SIDE_LEFT; break; case AXSTYLE_YBOXOUT: $toppos = FALSE; $bottompos = SIDE_DOWN; $leftpos = SIDE_LEFT; $rightpos = SIDE_RIGHT; break; default: JpGRaphError::Raise('Unknown AxisStyle() : ' . $this->iAxisStyle); break; } // By default we hide the first label so it doesn't cross the // Y-axis in case the positon hasn't been set by the user. // However, if we use a box we always want the first value // displayed so we make sure it will be displayed. $this->xscale->ticks->SupressFirst(false); // Now draw the bottom X-axis $this->xaxis->SetPos('min'); $this->xaxis->SetLabelSide(SIDE_DOWN); $this->xaxis->scale->ticks->SetSide($bottompos); $this->xaxis->Stroke($this->yscale, $aStrokeLabels); if ($toppos !== FALSE) { // We also want a top X-axis $this->xaxis = $this->xaxis; $this->xaxis->SetPos('max'); $this->xaxis->SetLabelSide(SIDE_UP); // No title for the top X-axis $this->title->Set(''); $this->xaxis->scale->ticks->SetSide($toppos); $this->xaxis->Stroke($this->yscale, $aStrokeLabels); } // Stroke the left Y-axis $this->yaxis->SetPos('min'); $this->yaxis->SetLabelSide(SIDE_LEFT); $this->yaxis->scale->ticks->SetSide($leftpos); $this->yaxis->Stroke($this->xscale, $aStrokeLabels); // Stroke the right Y-axis $this->yaxis->SetPos('max'); // No title for the right side $this->title->Set(''); $this->yaxis->SetLabelSide(SIDE_RIGHT); $this->yaxis->scale->ticks->SetSide($rightpos); $this->yaxis->Stroke($this->xscale, $aStrokeLabels); } else { $this->xaxis->Stroke($this->yscale, $aStrokeLabels); $this->yaxis->Stroke($this->xscale, $aStrokeLabels); } }