Exemplo n.º 1
0
 /**
  * Alias for FlashChart::chart('radar'); 
  *
  * The Radar chart needs special axis and also
  * have special methods for stokes and labes
  * 
  * @todo Each value can have it's own tooltip using the dot_value class
  *
  * @example echo $flashChart->radar(array('loop'=>false','colour'=>'336699'));
  * @example echo $flashChart->radar(array('type'=>filled'),'Dataset2');
  * @param array $options
  * @param string $datasetName The name to be used to associate charts with data
  * @param string $chartId Name of chart. Use for seperate charts.
  * @return string
  */
 public function radar($options = array(), $datasetName = 'default', $chartId = 'default')
 {
     if (empty($this->data[$datasetName])) {
         return false;
     }
     $this->Chart->set_bg_colour($this->bg_colour);
     if (isset($options['type']) && $options['type'] == 'filled') {
         $line = new area_hollow();
     } else {
         $line = new line_hollow();
         if (!isset($options['loop']) || isset($options['loop']) && $options['loop']) {
             $line->loop();
         }
         if (isset($options['loop'])) {
             unset($options['loop']);
         }
     }
     $values = $this->getNumbers($datasetName);
     /* @todo code below is not getting expected result
     		if (isset($options['tooltip_path'])) {
     			$numbers = $values;
     			$values = array();
     			$tooltips = Set::extract($xpath,$this->data[$datasetName]);
     			if (isset($options['tooltip_colour'])) {
     				$colour = $options['tooltip_colour'];
     				unset($options['tooltip_colour']);	
     			} else {
     				$colour = $this->grid_colour;
     			}
     			foreach ($numbers as $key => $number) {
     				$tmp = new dot_value( $number, $colour );
     		    	$tmp->set_tooltip($tooltips[$key]);
     		    	$values[] = $tmp;
     			}			
     			unset($options['tooltip_path']);	
     		}*/
     if (isset($options['type'])) {
         unset($options['type']);
     }
     foreach ($options as $key => $setting) {
         $set_method = 'set_' . $key;
         if (is_array($setting)) {
             $line->{$set_method}($setting[0], $setting[1]);
         } else {
             $line->{$set_method}($setting);
         }
     }
     $radar_axis_object = new radar_axis($this->radarAxis['max']);
     $radar_axis_object->set_steps($this->radarAxis['steps']);
     $radar_axis_object->set_colour($this->radarAxis['colour']);
     $radar_axis_object->set_grid_colour($this->radarAxis['grid_colour']);
     if (!empty($this->radarAxis['labels'])) {
         $labels = new radar_axis_labels($this->radarAxis['labels']);
         $labels->set_colour($this->radarAxis['label_colour']);
         $radar_axis_object->set_labels($labels);
     }
     if (!is_null($this->spoke_labels)) {
         $radar_axis_object->set_spoke_labels($this->spoke_labels);
     }
     $this->Chart->set_radar_axis($radar_axis_object);
     $line->set_values($values);
     $this->Chart->add_element($line);
     return $this->renderData($chartId);
 }
Exemplo n.º 2
0
    $area_w->set_fill_colour('#EFC01D');
    $area_w->set_fill_alpha(0.4);
    $area_w->set_loop();
    $area_w->set_values($vals);
    $line_t = new line();
    $line_t->set_values($data_t);
    $max = max($data_t) * 1.15;
    $label = array();
    for ($i = 0; $i < $max; $i = $i + round($max * 0.1, -1)) {
        $label[] = $i;
    }
    $r = new radar_axis($max);
    $r->set_colour('#EFD1EF');
    $r->set_steps(round($max * 0.1, -1));
    $r->set_grid_colour('#EFD1EF');
    $labels = new radar_axis_labels($label);
    $labels->set_colour('#9F819F');
    $r->set_labels($labels);
    $spoke_labels = new radar_spoke_labels($time_axis);
    $spoke_labels->set_colour('#9F819F');
    $r->set_spoke_labels($spoke_labels);
    $tooltip = new tooltip();
    $tooltip->set_hover();
    $chart = new open_flash_chart();
    $chart->set_title($title);
    $chart->set_tooltip($tooltip);
    $chart->set_bg_colour('#ffffff');
    $chart->set_radar_axis($r);
    $chart->add_element($area_w);
    echo $chart->toString();
}