public function getGraphData()
 {
     $company = Input::get('company');
     $interval = Input::get('interval');
     $precision = Input::get('prc');
     $company_symbol = isset($company) && !empty($company) ? $company : 'goog';
     $interval = isset($interval) && !empty($interval) ? $interval : 'd';
     $precision = isset($precision) && !empty($precision) && is_numeric($precision) ? $precision : 1;
     $stock_market = new StockMarket($company_symbol, $interval, $precision);
     //<---class declared here and passed the datas
     /* // <--utilizing the function for finding the Company name from Symbol
     			//<-- to check the given company symbol is correct or not */
     $company_name = $stock_market->find_company_name_from_symbol();
     if ($company_name) {
         //<-- if company name given is not false go further
         $stock_records = $stock_market->get_the_market_data();
         //<--function to collect Historical data for given company symbol
         if ($stock_records) {
             //<----if it retuns a record then proceed
             $range_from = $stock_market->get_graph_range_start();
             //<--this function helps to calculate historical Graph area minmum range
             $range_to = $stock_market->get_graph_range_ends();
             //<--this function helps to calculate historical Graph area maximum range
             $lower_range_coords = $stock_market->get_lower_price_data();
             //<--this function helps to return the lower price data for graph
             $higher_range_coords = $stock_market->get_higher_price_data();
             //<--this function helps  to return the higher price data for graph
             $graph = new PHPGraphLib(470, 270);
             $graph->addData($lower_range_coords);
             $graph->addData($higher_range_coords);
             $graph->setRange($range_from, $range_to);
             $graph->setTitle($company_name . '  Graph');
             $graph->setBars(false);
             $graph->setLine(true);
             $graph->setDataPoints(true);
             $graph->setDataPointColor('maroon');
             $graph->setDataPointColor('red');
             $graph->setDataValues(true);
             $graph->setDataValueColor('blue');
             $graph->setGoalLine(0.25);
             $graph->setGoalLineColor('red');
             $graph->createGraph();
             //<--this draw the graph
             $contents = View::make('graph')->with('graph', $graph);
             // Create a response and modify a header value
             $response = Response::make($contents, 200);
             $response->header('Content-Type', 'image/png');
             return $response;
         }
         //<-- stock data checks ends
     }
     //<--company name check ends
 }
Ejemplo n.º 2
0
function make_graph_multi_line($title, $data_min, $data_avg, $data_max, $is_bar_graph)
{
    include 'phpgraphlib.php';
    $graph = new PHPGraphLib(780, 300);
    if ($is_bar_graph == 'true') {
        $graph->setBars(true);
        $graph->setLine(false);
    } else {
        $graph->setBars(false);
        $graph->setLine(true);
    }
    $graph->setDataPoints(true);
    $graph->setDataPointSize(4);
    $graph->setDataPointColor('purple');
    $graph->setLegend(true);
    if (!isset($data_min)) {
        $graph->addData($data_avg);
        $graph->addData($data_max);
        if ($is_bar_graph == 'true') {
            $graph->setBarColor('purple', 'red');
        } else {
            $graph->setLineColor('purple', 'red');
        }
        $graph->setLegendTitle('avg', 'max');
    } else {
        $graph->addData($data_min);
        $graph->addData($data_avg);
        $graph->addData($data_max);
        if ($is_bar_graph == 'true') {
            $graph->setBarColor('blue', 'purple', 'red');
        } else {
            $graph->setLineColor('blue', 'purple', 'red');
        }
        $graph->setLegendTitle('min', 'avg', 'max');
    }
    $graph->setTitle($title);
    $graph->setTitleColor("88,89,91");
    $graph->setXValuesVertical(true);
    $graph->createGraph();
}
Ejemplo n.º 3
0
function create_graph($graph_type = '')
{
    $graph = new PHPGraphLib(1400, 600);
    $model = new TwextraModel();
    //$data = array("Alex"=>99, "Mary"=>98, "Joan"=>70, "Ed"=>90);
    if ($graph_type == 'daily_stats') {
        $data = $model->get_stats_daily();
        $graph->setTitle("Daily Unique Traffic");
    } else {
        if ($graph_type == 'message_history') {
            //this graph is currently not plotted!
            $screen_name = 'rajen4126';
            $message_from = 0;
            $next = 20;
            $order = 'created';
            $asc_desc = 'desc';
            $length = 20;
            $data = $model->get_message_history($screen_name, $message_from, $next, $order, $asc_desc, $length);
            foreach ($data as $entry) {
                $data[$entry[message_id]] = $entry[view_count];
            }
            $graph->setTitle("Message History");
        } else {
            if ($graph_type == 'monthly_stats') {
                $data = $model->get_monthly_uniques();
                $graph->setTitle("Monthly Unique Traffic");
            } else {
                if ($graph_type == 'messages_stats') {
                    $data = $model->get_messages_stats();
                    $graph->setTitle("Daily Messages Created");
                } else {
                    $data = array();
                }
            }
        }
    }
    $graph->addData($data);
    $graph->setTextColor("blue");
    //additions for a line graph..........
    $graph->setBars(false);
    $graph->setLine(true);
    //$graph->setDataPoints(true);
    $graph->setDataPointColor('maroon');
    $graph->setDataValues(true);
    $graph->setDataValueColor('maroon');
    $graph->setGoalLine(0.0025);
    $graph->setGoalLineColor('red');
    //........
    return $graph->createGraph();
}
Ejemplo n.º 4
0
//mysqli_select_db($link,'gfb11176') or die('Could not select database');
//mysql_select_db("mydatabase") or die("MySQL Error: " . mysql_error());
$dataArray = array();
// Get the values from the COReadings table for the currently logged in user.
$sql = "SELECT COValue, AddedOn FROM COReadings \n\t\tJOIN COUsers ON COUsers.id = COReadings.UserID\n\t\tWHERE COUsers.Email = '{$email}'";
$result = mysqli_query($link, $sql) or die('Query failed: ' . mysql_error());
if ($result) {
    while ($row = mysqli_fetch_assoc($result)) {
        $dateAdded = $row["AddedOn"];
        $count = $row["COValue"];
        // Add to data array
        $dataArray[$dateAdded] = $count;
    }
}
// Configure graph
$graph->addData($dataArray);
$graph->setTitle("Carbon Monoxide Readings");
$graph->setTitleColor('navy');
$graph->setGradient("lime", "green");
$graph->setBars(false);
$graph->setLine(true);
$graph->setDataPoints(true);
$graph->setDataValues(true);
$graph->setDataValueColor('navy');
$graph->setDataPointColor('navy');
$graph->setXValuesHorizontal(true);
//$graph->setBackgroundColor("black");
$graph->setYAxisTextColor('black');
$graph->setXAxisTextColor('black');
$graph->setLineColor('navy');
$graph->createGraph();
Ejemplo n.º 5
0
                     // execute query and place results (if any) in array per-subnet
                     if (($value = $db->dbQuery($val->ValidateSQL($sql, $dbconn), $dbconn)) !== -1) {
                         $all[$name] = $total;
                         $data[$name] = count($db->dbArrayResults($value));
                     }
                 }
             }
             // generate our graphs but check for gd lib extensions first
             if (function_exists('imagedestroy')) {
                 $graph = new PHPGraphLib(450, 200);
                 // push the image and assign attributes
                 $graph->addData($data, $all);
                 $graph->setTitle("Total Leases: " . $total_leases);
                 $graph->setTitleLocation("left");
                 $graph->setLegendTitle("Available", "In Use");
                 $graph->setBars(true);
                 $graph->setLegend(true);
                 $graph->setDataPoints(true);
                 $graph->setDataPointColor("red");
                 $graph->setDataValueColor("gray");
                 $graph->createGraph();
             }
         } else {
             // page view restricted by access level
             $ERROR = $err->GenerateErrorLink("help/help.html", "#undef", $defined['error'], $errors['level']);
         }
     } else {
         // general authentication error
         $ERROR = $err->GenerateErrorLink("help/help.html", "#undef", $defined['error'], $errors['auth_n']);
     }
 } else {
Ejemplo n.º 6
0
 /**
  * Function to generate a file containing a graph of power (kW) against
  * solar radiation (W/m2) using data from the given tables.  A date range
  * can be specified to restrict the x-axis.
  * @param string $imageFilename Name of file to write graph to
  * @param string $powerTable Name of table to get power data from
  * @param string $solRadTable Name of table to get solar radiation data from
  * @param array $dateRange An optional array of two DateTime objects to limit
  *                         the range of data used
  */
 public function createGraphImage($imageFilename, $powerTable, $powerColumn, $solRadTable, &$dateRange = NULL)
 {
     global $verbose;
     if (!$this->graphsEnabled) {
         return;
     }
     // We inner join the tables on the datetime field.  This is expected to be called on
     // a solar radiation data table and a instananeous power data table so the two can
     // be easily compared.  They will need different y-axes.
     if ($verbose > 0) {
         print "Generating power graph in file {$imageFilename}\n";
     }
     $sql = "SELECT {$powerTable}.datetime, {$powerTable}.{$powerColumn}, sol_rad\n                FROM {$solRadTable} INNER JOIN {$powerTable}\n                ON {$powerTable}.datetime = {$solRadTable}.datetime";
     $whereClause = '';
     $whereClausePower = '';
     if ($dateRange != NULL) {
         $whereClause = " WHERE DATE({$solRadTable}.datetime) > '" . $dateRange[0]->format('Y-m-d') . "' &&\n                                   DATE({$solRadTable}.datetime) < '" . $dateRange[1]->format('Y-m-d') . "'";
         $whereClausePower = str_replace($solRadTable, $powerTable, $whereClause);
     }
     $sql .= $whereClause;
     $data = $this->fetchQuery($sql);
     $maxSolRad = $this->fetchQuery("SELECT MAX(sol_rad) FROM {$solRadTable}" . $whereClause, PDO::FETCH_NUM);
     $maxPower = $this->fetchQuery("SELECT MAX({$powerColumn}) FROM {$powerTable}" . $whereClausePower, PDO::FETCH_NUM);
     if ($maxPower[0][0] == 0) {
         // If there was never any power, divide by 1 rather than 0 when scaling!
         $maxPower[0][0] = 1;
     }
     $graph = new PHPGraphLib(10000, 1000, $imageFilename);
     $graph->setTitle($powerTable . ' against solar radiation (both scaled to % of maximum recorded value)');
     $graph->setBars(FALSE);
     $graph->setLine(TRUE);
     $graph->setLineColor('red', 'yellow');
     $graph->setLegend(TRUE);
     $graph->setLegendTitle('Power', 'Solar radiation');
     // Reassmble the data into the form needed for PHPGraphLib and scale values so they can be plotted on the same
     // y-axis (a limitation of PHPGraphLib...if we can go GPLv3, we can use PCharts2 which can do multiple y-axes,
     // or there's SVGGraph which is LGPL).
     foreach ($data as $entry) {
         $powerData[$entry['datetime']] = $entry[$powerColumn] / $maxPower[0][0] * 100;
         $solRadData[$entry['datetime']] = $entry['sol_rad'] / $maxSolRad[0][0] * 100;
     }
     // Free up memory (maybe!)
     $data = NULL;
     $graph->addData($powerData, $solRadData);
     $graph->createGraph();
 }