* License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ require_once 'OFC/OFC_Chart.php'; $title = new OFC_Elements_Title("Our New House Schedule"); $hbar = new OFC_Charts_Bar_Horizontal(); $hbar->append_value(new OFC_Charts_Bar_Horizontal_Value(0, 4)); $hbar->append_value(new OFC_Charts_Bar_Horizontal_Value(4, 8)); $hbar->append_value(new OFC_Charts_Bar_Horizontal_Value(8, 11)); $chart = new OFC_Chart(); $chart->set_title($title); $chart->add_element($hbar); $chart->add_y_axis(new OFC_Elements_Axis_Y()); $x = new OFC_Elements_Axis_X(); $x->set_offset(false); $x->set_labels_from_array(array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')); $chart->set_x_axis($x); $y = new OFC_Elements_Axis_Y(); $y->set_offset(true); $y->set_labels(array("Make garden look sexy", "Paint house", "Move into house")); $chart->add_y_axis($y); echo $chart->toPrettyString();
function render_chart($options = array()) { $genid = array_var($options, 'genid', gen_id()); $title = array_var($options, 'title', ''); $width = array_var($options, 'width', 700); $height = array_var($options, 'height', 500); $type = array_var($options, 'type', 'line'); $x_range = array_var($options, 'x_range', array()); $y_range = array_var($options, 'y_range', array()); $x_labels = array_var($options, 'x_labels', array()); $y_axis_right = array_var($options, 'y_axis_right'); $y_values = array_var($options, 'data'); $shapes = array_var($options, 'shapes', array()); $label_step = array_var($options, 'label_step', 7); $title = new OFC_Elements_Title($title); $max = 0; $chart_values = array(); foreach ($y_values as $y_values_array) { $data_object = create_chart_data_object($type, $y_values_array); $values_data = array_var($y_values_array, 'values', array()); $max = count($values_data) > $max ? count($values_data) : $max; $chart_values[] = $data_object; } $x_range_start = array_var($x_range, 'start', 0); $x_range_end = array_var($x_range, 'end', 10) - $x_range_start > $max ? $max + $x_range_start - 1 : array_var($x_range, 'end', 10); $labels = array(); $coef = floor(count($x_labels) / $label_step); if ($coef > 0) { $k = 0; foreach ($x_labels as $label) { $labels[] = $k % $coef == 0 ? $label : ""; $k++; } } else { $labels = $x_labels; } $x_axis = new OFC_Elements_Axis_X(); $x_axis->set_colours(array_var($options, 'x_axis_color', '#87C4FA'), array_var($options, 'x_grid_color', '#D4E8FA')); if (array_var($x_range, 'step')) { $x_axis->set_range($x_range_start, $x_range_end, array_var($x_range, 'step', 1)); } $x_axis->set_labels_from_array($labels); $y_axis = new OFC_Elements_Axis_Y(); $y_axis->set_colours(array_var($options, 'y_axis_color', '#87C4FA'), array_var($options, 'y_grid_color', '#D4E8FA')); if (array_var($y_range, 'step')) { $y_axis->set_range(array_var($y_range, 'start', 0), array_var($y_range, 'end', 10), array_var($y_range, 'step', 1)); } $chart = new OFC_Chart(); $chart->set_title($title); foreach ($chart_values as $cv) { $chart->add_element($cv); } $chart->set_x_axis($x_axis); $chart->set_y_axis($y_axis); $chart->set_bg_colour(array_var($options, 'back_color', '#FFFFFF')); if ($y_axis_right) { $chart->set_y_axis_right($y_axis); } foreach ($shapes as $s) { $shape = new shape(array_var($s, 'color', '#FA6900')); $points = array_var($s, 'points', array()); foreach ($points as $p) { $shape->append_value(new shape_point($p['x'], $p['y'])); } if (array_var($s, 'text')) { $shape->set_text(array_var($s, 'text')); } if (array_var($s, 'alpha')) { $shape->set_alpha(array_var($s, 'alpha')); } $chart->add_element($shape); } $filename = 'tmp/' . gen_id() . '.json'; file_put_contents(ROOT . "/{$filename}", $chart->toPrettyString()); open_flash_chart_object($width, $height, ROOT_URL . "/{$filename}", $genid); // unlink(ROOT . "/$filename"); }
public function draw_category_chart($ref_rec, $gb_captions) { $f = $this->init_module(Libs_OpenFlashChart::module_name()); $title = new OFC_Elements_Title($ref_rec); $f->set_title($title); $labels = array(); foreach ($gb_captions as $cap) { $labels[] = $cap['name']; } $x_ax = new OFC_Elements_Axis_X(); $x_ax->set_labels_from_array($labels); $f->set_x_axis($x_ax); $max = 5; $color = 0; foreach ($this->ref_records as $q => $r) { $results = call_user_func($this->display_cell_callback, $r); $title2 = strip_tags(call_user_func($this->ref_record_display_callback, $r, true)); $bar = new OFC_Charts_Line(); $bar->set_colour(self::$colours[$color % count(self::$colours)]); $color++; $bar->set_key($title2, 10); $arr = array(); foreach ($results as $v) { if ($ref_rec) { if (is_array($v[$ref_rec])) { $v[$ref_rec] = array_pop($v[$ref_rec]); } $val = (double) strip_tags($v[$ref_rec]); } else { if (is_array($v)) { $v = array_pop($v); } $val = (double) strip_tags($v); } $arr[] = $val; if ($max < $val) { $max = $val; } } $bar->set_values($arr); $f->add_element($bar); } $y_ax = new OFC_Elements_Axis_Y(); $y_ax->set_range(0, $max); $y_ax->set_steps($max / 10); $f->set_y_axis($y_ax); $f->set_width(950); $f->set_height(400); $this->display_module($f); }
/** * @Route("/{anno}/{mes}/{assigned_user_id}/{width}/panel_detalle_discovery_metas_in_progress_data.json", name="panel_detalle_discovery_metas_in_progress_data", defaults={"anno"="2013","mes"="01"}, options={"expose"=true}) */ public function panelDetalleDiscoveryMetasPorAgenteDataAction($anno, $mes, $assigned_user_id, $width) { include_once __DIR__ . "/../Util/OFC/OFC_Chart.php"; $title = new \OFC_Elements_Title('STATUS DE LAS REUNIONES V/S METAS DEL AGENTE '); $bar = new \OFC_Charts_Bar_Stack(); $sql = "SELECT CONCAT(users.user_name,' ',users.first_name,' ', users.last_name) as owner, meetings.assigned_user_id, (SELECT count(*) FROM meetings m WHERE parent_type = 'Accounts' AND m.deleted = 0 AND YEAR(m.date_start) = 2015 AND m.assigned_user_id = meetings.assigned_user_id ) as meetings,(SELECT count(*) FROM meetings m2 INNER JOIN accounts_opportunities ON m2.parent_id = accounts_opportunities.opportunity_id WHERE parent_type = 'Opportunities' AND 1 AND m2.deleted = 0 AND YEAR(m2.date_start) = " . $anno . " ) as meetings_opportunities FROM meetings INNER JOIN users ON users.id = meetings.assigned_user_id AND meetings.deleted = 0 AND meetings.assigned_user_id = '" . $assigned_user_id . "' GROUP BY assigned_user_id HAVING (meetings + meetings_opportunities) > 0;"; $stmt = $this->container->get('doctrine')->getManager()->getConnection()->prepare($sql); $stmt->execute(); //Valores $valor = 0; foreach ($stmt->fetchAll() as $data) { $valor = (int) $data['meetings'] + (int) $data['meetings_opportunities']; $bar->append_stack(array(new \OFC_Charts_Bar_Stack_Value((int) $data['meetings'], '#ff0000'), new \OFC_Charts_Bar_Stack_Value((int) $data['meetings_opportunities'], '#1240AB'))); } //Metas $sql = "SELECT sem_1_c, sem_2_c FROM cammr_metasreuniones INNER JOIN cammr_metasreuniones_cstm ON cammr_metasreuniones_cstm.id_c = cammr_metasreuniones.id WHERE deleted = 0 AND anno_c = '" . $anno . "' AND user_id_c = '" . $assigned_user_id . "';"; $stmt = $this->container->get('doctrine')->getManager()->getConnection()->prepare($sql); $stmt->execute(); $meta = 0; foreach ($stmt->fetchAll() as $data) { $meta = $data['sem_1_c'] + $data['sem_2_c']; $bar->append_stack(array(new \OFC_Charts_Bar_Stack_Value((int) $data['sem_1_c'], '#ff0000'), new \OFC_Charts_Bar_Stack_Value((int) $data['sem_2_c'], '#1240AB'))); } $y = new \OFC_Elements_Axis_Y(); $max = round(max($valor, $meta) * 1.15, 0); $y->set_range(0, $max, round($max, -3)); $x = new \OFC_Elements_Axis_X(); $x->set_labels_from_array(array('Reuniones', 'Metas')); $chart = new \OFC_Chart(); $chart->set_bg_colour('#FFFFFF'); $chart->set_title($title); $chart->add_element($bar); $chart->set_x_axis($x); $chart->add_y_axis($y); $response = new Response($chart->toPrettyString()); $response->headers->set('Content-Type', 'application/json'); return $response; }