<?php // content="text/plain; charset=utf-8" require_once 'jpgraph/jpgraph.php'; require_once 'jpgraph/jpgraph_line.php'; $ydata = array(12, 17, 22, 19, 5, 15); $graph = new Graph(250, 170); $graph->SetScale("textlin", 3, 35); $graph->SetTickDensity(TICKD_DENSE); $graph->yscale->SetAutoTicks(); $graph->title->Set('Manual scale, auto ticks'); $graph->title->SetFont(FF_FONT1, FS_BOLD); $line = new LinePlot($ydata); $graph->Add($line); // Output graph $graph->Stroke(); ?>
// Size of the overall graph $width = 350; $height = 250; // Create the graph and set a scale. // These two calls are always required $graph = new Graph(800, 600, 'auto'); $graph->SetScale("datlin", 0, $max + 10); $graph->yaxis->scale->SetGrace(7); $graph->img->SetMargin(50, 30, 40, 130); $graph->SetShadow(); $graph->yaxis->title->Set("Close"); $graph->xaxis->title->Set("Date"); $graph->title->Set($var_graph); $lplot = new LinePlot($closearray); $graph->xaxis->SetLabelAngle(90); $graph->SetTickDensity(TICKD_NORMAL, TICKD_SPARSE); $graph->xaxis->SetTickLabels($datearray); $lplot->SetFillColor('red@0.5'); $graph->Add($lplot); $graph->Stroke(); $user = '******'; $pass = ''; $db = 'testdb'; $conn = new mysqli('localhost', $user, $pass, $db) or die("unable to connect"); //echo"great work!"; $sql = "insert into search(userName,searchValue) values('{$uname}','{$var_graph}')"; $data = mysqli_query($conn, $sql) or die; ?> <a href="index.html" style="color:blue;font-size:30px;position:absolute;right:10px;top:50px;font-weight:bold;">back to home</a> </body>
function GetView() { global $TMP_PATH; $req = $this->req->CreateDataRequest(); $x = $req->GetProp("view_x", false); $y = $req->GetProp("view_y", false); if (!$x || !$y) { throw new ADEIException(translate("Parameters view_x and view_y are not set")); } list($x_gid, $x_id) = explode(":", $x); list($y_gid, $y_id) = explode(":", $y); if ($this->object) { $width = $req->GetProp($this->object . "_width", $this->min_width + 20) - 20; if ($width < $this->min_width) { $width = $this->min_width; } $height = $width - 40; //$req->GetProp($this->object . "_height", $this->min_height); } else { $width = $req->GetProp("page_width", $this->min_width + 5) - 5; $height = $req->GetProp("page_height", $this->min_height); if ($width < $this->min_width) { $width = $this->min_width; } if ($height < $this->min_height) { $height = $this->min_height; } } /* print_r($this); echo "$width $height\n"; exit;*/ $rdr = $req->CreateReader(); $group = $rdr->CreateGroup(); $caches = $rdr->CreateCacheSet($group, $mask); // $iv = new INTERVAL($req->props); $iv = $caches->CreateInterval($req, true); $window_size = $iv->GetWindowSize(); $window_start = $iv->GetWindowStart(); $window_end = $iv->GetWindowEnd(); $rescfg = array('limit' => $this->max_points, 'resolution' => $res); $gid = 0; $res = array(); foreach ($caches as $key => $cachewrap) { if ($gid != $x_gid && $gid != $y_gid) { $gid++; continue; } $resolution = $cachewrap->GetResolution(); $r = $resolution->Get($iv, $width); $size = $resolution->GetWindowSize($r); if ($size > 0 && $window_size / $size > $this->max_points) { $new_r = $resolution->Larger($r); if ($new_r !== false) { $r = $new_r; } $size = $resolution->GetWindowSize($r); } $rescfg['resolution'] = $r; $points = $cachewrap->GetIntervals($iv, $rescfg, CACHE::TRUNCATE_INTERVALS); $operation_info = $points->GetOperationInfo(); if ($gid == $x_gid) { $res_x = $size; } if ($gid == $y_gid) { $res_y = $size; } foreach ($points as $t => $v) { /* if (($t < $window_start)||(($t + $size) > $window_end)) { continue; }*/ if ($gid == $x_gid && is_numeric($v['mean' . $x_id])) { if (!is_array($res[$t])) { $res[$t] = array(); } $res[$t]['x'] = $v['mean' . $x_id]; } if ($gid == $y_gid && is_numeric($v['mean' . $y_id])) { if (!is_array($res[$t])) { $res[$t] = array(); } $res[$t]['y'] = $v['mean' . $y_id]; } } $gid++; } $x = array(); $y = array(); foreach ($res as $val) { if (isset($val['x']) && isset($val['y'])) { array_push($x, $val['x']); array_push($y, $val['y']); } } if (!$x) { throw new ADEIException(translate("No data found")); } $corr = stats_stat_correlation($x, $y); $tmp_file = ADEI::GetTmpFile(); $graph = new Graph($width, $height); if ($res_x == $res_y) { $title = "Resolution: {$res_x}"; } else { $title = "Resolution: {$res_x}, {$res_y}"; } if (!$this->object) { $title = "{$title}, " . date('c', $iv->GetWindowStart()) . " - " . date('c', $iv->GetWindowEnd()); } $graph->title->Set($title); $graph->SetTickDensity(TICKD_SPARSE, TICKD_SPARSE); $graph->img->SetMargin(55, 5, 10, 20); $graph->SetScale("linlin"); $graph->xaxis->SetPos("min"); $graph->yaxis->SetPos("min"); $graph->xaxis->SetLabelFormat('%3.1e'); $graph->yaxis->SetLabelFormat('%3.1e'); $graph->xaxis->SetFont(FF_ARIAL, FS_NORMAL, 8); $graph->yaxis->SetFont(FF_ARIAL, FS_NORMAL, 8); $graph->yaxis->HideFirstTickLabel(); $sp = new ScatterPlot($x, $y); $graph->Add($sp); /* $txt = new Text(); $txt->SetFont(FF_ARIAL,FS_BOLD,11); $txt->Set(sprintf("R = %01.2f", $corr)); $txt->SetPos(0.99,0.1,'right'); $txt->SetBox('lightyellow'); $graph->Add($txt); */ $graph->Stroke("{$TMP_PATH}/{$tmp_file}"); if ($this->object) { return array("img" => array("id" => $tmp_file), "div" => array("xml" => "<b>Correlation</b>: " . $corr . "<br/>" . "<b>From</b>: " . date('c', $iv->GetWindowStart()) . "<br/>" . "<b>To</b>: " . date('c', $iv->GetWindowEnd()) . "<br/>")); } else { return array("img" => array("id" => $tmp_file)); } }
<?php include "../jpgraph.php"; include "../jpgraph_bar.php"; $data1y = array(12, 8, 19, 3, 10, 5); $data2y = array(8, 2, 11, 7, 14, 4); $data3y = array(4, 1, 9, 15, 12, 6); $data4y = array(8, 3, 2, 1, 9, 10); // Create the graph. These two calls are always required $graph = new Graph(300, 315, "auto"); $graph->img->SetMargin(40, 30, 20, 40); $graph->SetScale("textlin"); $graph->SetShadow(); $graph->SetBox(); $graph->SetTickDensity(TICKD_VERYSPARSE); // Create the bar plots $b1plot = new BarPlot($data1y); $b1plot->SetFillColor("orange"); $b2plot = new BarPlot($data2y); $b2plot->SetFillColor("blue"); $b3plot = new BarPlot($data3y); $b3plot->SetFillColor("green"); $b4plot = new BarPlot($data4y); $b4plot->SetFillColor("red"); // Create the accumulated bar plots $ab1plot = new AccBarPlot(array($b1plot, $b2plot)); $ab2plot = new AccBarPlot(array($b3plot, $b4plot)); // Create the grouped bar plot //$gbplot = new GroupBarPlot(array($ab1plot,$ab2plot)); // ...and add it to the graPH //$graph->Add($gbplot);
function GetView() { global $TMP_PATH; $req = $this->req->CreateDataRequest(); $x = $req->GetProp("view_x", false); if (!$x) { throw new ADEIException(translate("Parameter view_x is not set")); } list($x_gid, $x_id) = explode(":", $x); if ($this->object) { $width = $req->GetProp($this->object . "_width", $this->min_width + 20) - 20; if ($width < $this->min_width) { $width = $this->min_width; } $height = $width - 40; //$req->GetProp($this->object . "_height", $this->min_height); } else { $width = $req->GetProp("page_width", $this->min_width + 5) - 5; $height = $req->GetProp("page_height", $this->min_height); if ($width < $this->min_width) { $width = $this->min_width; } if ($height < $this->min_height) { $height = $this->min_height; } } $rdr = $req->CreateReader(); $group = $rdr->CreateGroup(); $caches = $rdr->CreateCacheSet($group, $mask); $myreq = $this->req->CreateDataRequest(); $iv = $caches->CreateInterval($req, true); $window_size = $iv->GetWindowSize(); $window_start = $iv->GetWindowStart(); $window_end = $iv->GetWindowEnd(); $rescfg = array('limit' => $this->max_points, 'resolution' => $res); $gid = 0; $res = array(); foreach ($caches as $key => $cachewrap) { if ($gid != $x_gid) { $gid++; continue; } $resolution = $cachewrap->GetResolution(); $r = $resolution->Get($iv, $width); $size = $resolution->GetWindowSize($r); if ($size > 0 && $window_size / $size > $this->max_points) { $new_r = $resolution->Larger($r); if ($new_r !== false) { $r = $new_r; } $size = $resolution->GetWindowSize($r); } $rescfg['resolution'] = $r; $points = $cachewrap->GetIntervals($iv, $rescfg, CACHE::TRUNCATE_INTERVALS); $operation_info = $points->GetOperationInfo(); if ($gid == $x_gid) { $res_x = $size; } foreach ($points as $t => $v) { /* if (($t < $window_start)||(($t + $size) > $window_end)) { continue; }*/ if ($gid == $x_gid && is_numeric($v['mean' . $x_id])) { if (!is_array($res[$t])) { $res[$t] = array(); } $res[$t]['x'] = $v['mean' . $x_id]; $res[$t]['t'] = $t; } } $gid++; } $x = array(); $t = array(); foreach ($res as $val) { if (isset($val['x'])) { array_push($x, $val['x']); } } if (!$x) { throw new ADEIException(translate("No data found")); } $bins = $req->GetProp("view_bins", 0); if (!$bins) { $bins = ceil(sqrt(sizeof($x))); } $norm = $req->GetProp("view_hist_norm", 0); $fit = $req->GetProp("view_hist_fit", 0); $min = min($x); $max = max($x); $step = ($max - $min) / $bins; $coef = $norm ? 1 / ($step * sizeof($x)) : 1; $h = array_fill(0, $bins, 0); foreach ($x as $val) { $idx = ($val - $min) / $step; if ($idx == $bins) { $idx--; } $h[$idx] += $coef; } for ($i = 0; $i < $bins; $i++) { array_push($t, sprintf("%3.1e", $min + $i * $step)); } $tmp_file = ADEI::GetTmpFile(); $graph = new Graph($width, $height); /* $title = "Resolution: $res_x"; $graph->title->SetFont(FF_ARIAL,FS_BOLD,10); $graph->title->Set($title);*/ $graph->SetTickDensity(TICKD_SPARSE, TICKD_SPARSE); $graph->img->SetMargin(55, 5, 10, 20); $graph->SetScale("textlin"); $graph->xaxis->SetPos("min"); $graph->yaxis->SetPos("min"); // $graph->xaxis->SetLabelFormat('%3.1e'); // if (abs(max($h))<9999 && (abs(min($h))>0.01)) $graph->yaxis->SetLabelFormat('%01.2f'); // else $graph->yaxis->SetLabelFormat('%3.1e'); $graph->xaxis->SetFont(FF_ARIAL, FS_NORMAL, 8); $graph->yaxis->SetFont(FF_ARIAL, FS_NORMAL, 8); // $graph->yaxis->HideFirstTickLabel(); $graph->xaxis->title->SetFont(FF_ARIAL, FS_BOLD); $graph->yaxis->title->SetFont(FF_ARIAL, FS_BOLD); //$graph->xaxis->title->Set($arr[0]['select']['options'][$x_idg]['label']); if ($bins > 8) { $graph->xaxis->SetTextLabelInterval(ceil($bins / 6)); } $graph->xaxis->SetTickLabels($t); $bplot = new BarPlot($h); $bplot->SetWidth(1); $graph->Add($bplot); $graph->yaxis->scale->SetGrace(14); $mean = array_sum($x) / sizeof($x); $stddev = stats_standard_deviation($x); $var = stats_variance($x); $sigma = sqrt($var); $re = 100 * $sigma / $mean; sort($x); if (sizeof($x) % 2) { $median = $x[(sizeof($x) - 1) / 2]; } else { $median = ($x[sizeof($x) / 2 - 1] + $x[sizeof($x) / 2]) / 2; } // Gaussian fitting if ($fit) { $ydata = array(); $xdata = array(); if ($norm) { $coef = 1 / sqrt(2 * pi() * $var); } else { $coef = sizeof($x) * $step / sqrt(2 * pi() * $var); } $xi2 = 0; for ($i = 0; $i <= $bins; $i++) { $offset = $i * $step; $y = $coef * exp(-pow($min + $offset - $mean, 2) / (2 * $var)); array_push($xdata, $i); array_push($ydata, $y); $xi2 += pow($y - $h[$i], 2) / $y; } $xi2 /= $bins; $lineplot = new LinePlot($ydata, $xdata); $graph->Add($lineplot); } $char_sigma = SymChar::Get('sigma', false); /* $txt = new Text(); $txt->SetFont(FF_ARIAL,FS_BOLD,10); if( $req->GetProp("view_GFit", false) == "true") $txt->Set("m=$mean\n$char_sigma=$sigma\nRE=$RE%\nx^2=$xi2");//\ns=$stdDev else $txt->Set("m=$mean\n$char_sigma=$sigma\nRE=$RE%");//\ns=$stdDev $txt->ParagraphAlign('right'); $txt->SetPos(0.96,0.1,'right'); //$txt->SetBox('white'); $graph->Add($txt); */ $graph->Stroke("{$TMP_PATH}/{$tmp_file}"); if ($this->object) { $res = array(array("img" => array("id" => $tmp_file)), array("info" => array(array("title" => _("From"), "value" => date('c', $iv->GetWindowStart())), array("title" => _("To"), "value" => date('c', $iv->GetWindowEnd())), array("title" => _("Resolution"), "value" => $res_x), array("title" => _("Bins"), "value" => $bins), array("title" => _("First Bin"), "value" => $min), array("title" => _("Last Bin"), "value" => $min + $bins * $step), array("title" => _("Mean"), "value" => $mean), array("title" => _("Median"), "value" => $median), array("title" => _("StdDev"), "value" => $stddev), array("title" => _("Sigma"), "value" => $sigma), array("title" => _("RE"), "value" => $re . "%")))); if ($fit) { array_push($res[1]["info"], array("title" => _("xi2"), "value" => $xi2)); } return $res; } else { return array("img" => array("id" => $tmp_file)); } }
function GetView() { global $ADEI_ID_DELIMITER; global $TMP_PATH; $req = $this->req->CreateDataRequest(); $mapping_group = $req->GetProp("view_mapping_group", false); if (!$mapping_group) { throw new ADEIException(translate("Parameter view_mapping_group is not set")); } if ($mapping_group != "all") { list($server_db, $name_db, $group_db) = explode($ADEI_ID_DELIMITER, $mapping_group); $props_to_replace = array("db_server" => $server_db, "db_name" => $name_db, "db_group" => $group_db, "db_mask" => ""); $req = new DATARequest(array_merge($req->props, $props_to_replace)); } if ($this->object) { $width = $req->GetProp($this->object . "_width", $this->min_width + 20) - 20; if ($width < $this->min_width) { $width = $this->min_width; } $height = $width - 40; } else { $width = $req->GetProp("page_width", $this->min_width + 5) - 5; $height = $req->GetProp("page_height", $this->min_height); if ($width < $this->min_width) { $width = $this->min_width; } if ($height < $this->min_height) { $height = $this->min_height; } } $rdr = $req->CreateReader(); $group = $rdr->CreateGroup(); $caches = $rdr->CreateCacheSet($group, $mask); $myreq = $this->req->CreateDataRequest(); $iv = $caches->CreateInterval($req, true); $window_size = $iv->GetWindowSize(); $window_start = $iv->GetWindowStart(); $window_end = $iv->GetWindowEnd(); $rescfg = array('limit' => 1, 'resolution' => $res); $norm_hist_max = $req->GetProp("view_hist_norm_max", false); $norm_hist_srf = $req->GetProp("view_hist_norm_srf", false); $scale_log = $req->GetProp("view_log_scale", false); $mode_of_draw = $req->GetProp("view_draw_mode", false); $bin_from = $req->GetProp("view_bin_from", false); $bin_to = $req->GetProp("view_bin_to", false); $max_of_y = $req->GetProp("view_y_max", false); if (!$bin_from || $bin_from <= 0 || $bin_from == "false") { $bin_from = 1; } if (!isset($max_of_y) || $max_of_y < 0) { $max_of_y = 0; } $x_bin = array(); $x_bin_min = array(); $x_bin_max = array(); $x_bin_sum = array(); $x_axis_tick_labels = array(); foreach ($caches as $key => $cachewrap) { $resolution = $cachewrap->GetResolution(); if (!$bin_to || $bin_to <= 0 || $bin_to == "false") { $bin_to = $cachewrap->GetWidth(); } $bins_n = $bin_to - $bin_from + 1; $r = $resolution->Get($iv, $width); $size = $resolution->GetWindowSize($r); if ($size > 0 && $window_size / $size > $this->max_points) { $new_r = $resolution->Larger($r); if ($new_r !== false) { $r = $new_r; } $size = $resolution->GetWindowSize($r); } $rescfg['resolution'] = $r; $points = $cachewrap->GetIntervals($iv, $rescfg, CACHE::TRUNCATE_INTERVALS); $operation_info = $points->GetOperationInfo(); $res_x = $size; $sum_of_vars = 0; $sum_of_vars_min = 0; $sum_of_vars_max = 0; $number_of_events = 0; $number_of_events_min = 0; $number_of_events_max = 0; foreach ($points as $t => $v) { for ($i = $bin_from - 1; $i < $bin_to; $i++) { $bin_height = $v['mean' . $i]; if ($mode_of_draw == "hist_sum") { $bin_height *= $v['items']; } $x_bin[$i - $bin_from + 1] += $bin_height; $sum_of_vars += ($i + 1) * $bin_height; $number_of_events += $bin_height; if ($mode_of_draw == "hist_minmax") { $x_bin_min[$i - $bin_from + 1] += $v['min' . $i]; $x_bin_max[$i - $bin_from + 1] += $v['max' . $i]; } array_push($x_axis_tick_labels, sprintf("%d", $i + 1)); } } if (!$x_bin) { throw new ADEIException(translate("No data found")); } $mean = $sum_of_vars / $number_of_events; $var_std = 0; $var_sum = 0; $var_bin = 0; $half_number_of_events = $number_of_events / 2; for ($i = $bin_from; $i <= $bin_to; $i++) { $var_std += ($i - $mean) * ($i - $mean) * $x_bin[$i - $bin_from]; if ($var_sum < $half_number_of_events) { $var_sum += $x_bin[$i - $bin_from]; $var_bin = $i - $bin_from; } } $stddev = sqrt($var_std / $number_of_events); $median = $var_bin + ($half_number_of_events - $var_sum + $x_bin[$var_bin + 1]) / $x_bin[$var_bin + 1]; } $tmp_file = ADEI::GetTmpFile(); $graph = new Graph($width, $height); $graph->SetTickDensity(TICKD_SPARSE, TICKD_SPARSE); $graph->img->SetMargin(55, 5, 10, 20); if (!$scale_log) { $graph->SetScale("textlin", 0, $max_of_y); } else { if (min($x_bin) >= 0) { $graph->SetScale("textlog"); } else { throw new ADEIException(translate("The selected data contains negative values which can't be visualized on the log scale")); } } $graph->xaxis->SetPos("min"); $graph->yaxis->SetPos("min"); $graph->xaxis->SetFont(FF_ARIAL, FS_NORMAL, 8); $graph->yaxis->SetFont(FF_ARIAL, FS_NORMAL, 8); $graph->xaxis->title->SetFont(FF_ARIAL, FS_BOLD); $graph->yaxis->title->SetFont(FF_ARIAL, FS_BOLD); if ($bins_n > 16) { $graph->xaxis->SetTextLabelInterval(ceil($bins_n / ceil($width / 25))); } $graph->xaxis->SetTickLabels($x_axis_tick_labels); $bplot = new BarPlot($x_bin); $bplot->SetWidth(1); if ($mode_of_draw == "hist_sum") { $bplot->SetLegend("Sum Mode"); } else { $bplot->SetLegend("AVG Mode"); } if ($mode_of_draw == "hist_minmax") { $bplot_min = new BarPlot($x_bin_min); $bplot_min->SetWidth(1); $bplot_min->SetLegend("Minimum"); $bplot_min->SetFillColor('deepskyblue'); $bplot_max = new BarPlot($x_bin_max); $bplot_max->SetWidth(1); $bplot_max->SetLegend("Maximum"); $bplot_max->SetFillColor('indianred1'); } if ($mode_of_draw == "hist_minmax") { $graph->Add($bplot_max); } $graph->Add($bplot); if ($mode_of_draw == "hist_minmax") { $graph->Add($bplot_min); } $graph->yaxis->scale->SetGrace(14); $graph->Stroke("{$TMP_PATH}/{$tmp_file}"); if ($this->object) { $res = array(array("img" => array("id" => $tmp_file)), array("info" => array(array("title" => _("Number of Bins"), "value" => round($bins_n, 3)), array("title" => _("Mode"), "value" => array_search(max($x_bin), $x_bin) + $bin_from), array("title" => _("Mean"), "value" => round($mean, 3)), array("title" => _("Median"), "value" => round($median, 3)), array("title" => _("Value of Mode"), "value" => round(max($x_bin), 3)), array("title" => _("Integral of Hist"), "value" => round($number_of_events, 3)), array("title" => _("StdDev"), "value" => round($stddev, 3)), array("title" => _("RE"), "value" => round($stddev / $mean * 100 . "%", 3) . "%"), array("title" => _("From"), "value" => date('c', $iv->GetWindowStart())), array("title" => _("To"), "value" => date('c', $iv->GetWindowEnd())), array("title" => _("Resolution"), "value" => round($res_x, 3))))); return $res; } else { return array("img" => array("id" => $tmp_file)); } }