// The players plot $playersX = array(); $graph_data = array(); // epoch => [ "servers" => v, "players" => v ] // load the plugin's stats graph $globalstatistics = $plugin->getOrCreateGraph('Global Statistics'); // the player plot's column id $playersColumnID = $globalstatistics->getColumnID('Players'); // server plot's column id $serversColumnID = $globalstatistics->getColumnID('Servers'); foreach (DataGenerator::generateCustomChartData($globalstatistics, $playersColumnID, HOURS) as $data) { $epoch = $data[0]; $value = $data[1]; $playersX[] = $value; } foreach (DataGenerator::generateCustomChartData($globalstatistics, $serversColumnID, HOURS) as $data) { $epoch = $data[0]; $value = $data[1]; $serversX[] = $value; } // Add the data to the graph $dataSet->AddPoint($playersX, 'Serie1'); $dataSet->AddPoint($serversX, 'Serie2'); // Create the series $dataSet->AddSerie('Serie1'); $dataSet->AddSerie('Serie2'); $dataSet->SetSerieName('Players', 'Serie1'); $dataSet->SetSerieName('Servers', 'Serie2'); $dataSet->SetYAxisName(''); // Add all of the series $dataSet->AddAllSeries();
$response['status'] = 'ok'; $response['data'] = DataGenerator::generateCustomChartData($graph, -1, $hours); $response['name'] = htmlentities($graph->getName()); $response['type'] = GraphType::toString($graph->getType()); } else { if ($graph->getType() == GraphType::Map) { $response['status'] = 'ok'; $response['data'] = DataGenerator::generateGeoChartData($plugin); $response['name'] = htmlentities($graph->getName()); $response['type'] = GraphType::toString($graph->getType()); } else { foreach ($graph->getColumns() as $columnID => $columnName) { if (is_numeric($columnName) || is_double($columnName)) { $columnName = "" . $columnName; } $response['data'][utf8_encode($columnName)] = DataGenerator::generateCustomChartData($graph, $columnID, $hours); } // total the counts $total = 0; foreach ($response['data'] as $name => $data) { $count = count($data); // evict the column if it has none (wasting space !) if ($count == 0) { unset($response['data'][$name]); continue; } $total += $data[$count - 1][1]; // [[0,5], [1,7]] the expression will return 7 } // now evict more data if necessary if ($total > 5000 && count($response['data']) > 20) {