Jak wyświetlić 2 zbiory danych na tym wykresie? |
Jak wyświetlić 2 zbiory danych na tym wykresie? |
25.03.2015, 18:58:15
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 17.03.2015 Ostrzeżenie: (0%) |
Witam
Mam problem jeśli chce wyświetlić na tym samym wykresie przepustowość łącza w obu kierunkach czyli tx i rx. W jednym kierunku nie ma problemu. Proszę o podpowiedź jak to zrobić. Poniżej skrypt który wykonuje prezentacje wykresu i obciążenia łącza. CODE <? $int="eth0"; session_start(); $rx[] = @file_get_contents("/sys/class/net/$int/statistics/rx_bytes"); $tx[] = @file_get_contents("/sys/class/net/$int/statistics/tx_bytes"); sleep(1); $rx[] = @file_get_contents("/sys/class/net/$int/statistics/rx_bytes"); $tx[] = @file_get_contents("/sys/class/net/$int/statistics/tx_bytes"); $tbps = $tx[1] - $tx[0]; $rbps = $rx[1] - $rx[0]; $round_rx=round($rbps/1024, 2); $round_tx=round($tbps/1024, 2); $time=date("U")."000"; $_SESSION['rx'][] = "[$time, $round_rx]"; $_SESSION['tx'][] = "[$time, $round_tx]"; $data['label'] = $int; $data['data'] = $_SESSION['rx']; # to make sure that the graph shows only the # last minute (saves some bandwitch to) if (count($_SESSION['rx'])>60) { $x = min(array_keys($_SESSION['rx'])); unset($_SESSION['rx'][$x]); } # json_encode didnt work, if you found a workarround pls write me # echo json_encode($data, JSON_FORCE_OBJECT); echo ' {"label":"'.$int.'","data":['.implode($_SESSION['rx'], ",").']} '; ?> CODE <?php
session_start(); session_destroy(); session_start(); ?> <html> <head> <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="js/jquery.flot.js"></script> <script id="source" language="javascript" type="text/javascript"> $(document).ready(function() { var options = { lines: { show: true }, points: { show: true }, xaxis: { mode: "time" } }; var data = []; var placeholder = $("#placeholder"); $.plot(placeholder, data, options); var iteration = 0; function fetchData() { ++iteration; function onDataReceived(series) { // we get all the data in one go, if we only got partial // data, we could merge it with what we already got data = [ series ]; $.plot($("#placeholder"), data, options); fetchData(); } $.ajax({ url: "data.php", method: 'GET', dataType: 'json', success: onDataReceived }); } setTimeout(fetchData, 1000); }); </script> </head> <body> <div id="placeholder" style="width:600px;height:300px;"></div> </body> </html> |
|
|
26.03.2015, 09:52:16
Post
#2
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) |
Tablica jaką powinna dostać biblioteka rysująca wykres powinna wyglądać w ten sposób:
Kod data = [ seria1, seria2, ... serian ] Tak więc Twoja tablica powinna zawierać dwie tablice z danymi: jedna z rx, a druga z tx. -------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
29.03.2015, 16:41:42
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 17.03.2015 Ostrzeżenie: (0%) |
W pliku data.php wpisywałem dwie tablice z dynami w taki sposób i żaden nie chce działać
echo '[ { label: "download", data: ['.implode($_SESSION['rx'], ",").'] }, { label: "upload", data: ['.implode($_SESSION['tx'], ",").'] } ];'; oraz echo ' { label: "download", data: ['.implode($_SESSION['rx'], ",").'] }, { label: "upload", data: ['.implode($_SESSION['tx'], ",").'] } '; |
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 03:19 |