Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][SQL]Wykres linowy z nieregularną stałą czasową -
Forum PHP.pl > Forum > Przedszkole
kewy
Witam serdecznie,
Mam :
- baza w mssql 2000 do której są zapisywane dane z różnym odstępem czasowym;
- wykres linowy za pomocą Open Flash Chart , który odświeżam co 1 minutę za pomocą funkcji :<meta http-equiv="Refresh" content="60">

I oto efekty mojej pracy:


Jak widać wszystko było by fajnie gdyby nie:
- wykres ten nie odzwierciedla tego co bym chciał czyli:
w ciągu np 10 minut będę miał np 50 wartości i np w ciągu następnych 10 minut będę miał 20 wartości to na tym wykresie to by było ok 70 kratek a ja bym chciał aby kratki lub odczyt w ciągu 10 minut to było np 10cm i niezależnie czy w ciągu tych 10 minut będę miał 50 czy 100 odczytów ( danych z bazy danych) szerokość tych danych się nie zmienia!

Troszkę zamieszałem , ale myślę że sens oddałem
proszę o pomoc bo męczę się już z tym miesiąc i nie bardzo mi idzie to do przodu

Troszkę zamieszałem ale myślę że rozumiecie o co mi chodzi.
Chodzi mi o to aby godziny zawsze były np. 10:00 , 10:10, 10:20 .... , a nie jak ja to mam uzależnione od ilości danych w ciągu np. 10 minut

pozdrawiam i dziękuje za pomoc smile.gif
Darti
Aproksymacja i interpolacja.
Ustal sobie jednostkę czasu, co ile chcesz mieć odczyty a później to albo dołożyć punktów odczytu tam gdzie ich brakuje i nadać im średnie wartości sąsiadów albo usunąć zbyt gęste punkty odczytu zamieniając je w jeden o wartości średniej tych punktów.
kewy
wydaje mi się że to nie jest dobry pomysł;/ :
bo i nie wiem jak to zrobić
a po drugie nie wiem ile będzie zmiennych na 1godzine czasem może być 10 czasem może być 60 ? ;/
kewy
Witam serdecznie smile.gif
Mam następujący problem smile.gif
mam następujące dane z bazy danych:


I mam zrobić wykres na podstawie tych danych i mam problem ;/
Korzystałem z open flash chart i mam wykres wszystko pięknie ale nie jest taki jakbym chciał ;/
tzn mam 36 punktów na wykresie o stałym odstępie np 1cm i to jest mój problem sadsmiley02.gif podam niżej przykładowy wykres



1. Mój pomysł to:
zrobić taką tablicę co 1s czyli

10:20:15 XXX
10:20:16 555
10:20:17 XXX
10:20:18 666
10:20:19 XXX
10:20:20 XXX
10:20:21 XXX

Robię tablicę w której wpisuje wartości w tych miejscach co mam tą samą godzinę w bazie i przepisuje wartość, ale muszę wpisać w pola XXX wartość może to być średnia lub ostatnia wartość powtórzona smile.gif

i pytania :
Jak szanowni koledzy widzą rozwiązanie tego problemu questionmark.gif
Może ktoś mi podpowie jak spróbować zrobić to z moim pomysłem o wypełnieniu tablicy co 1s smile.gif

pozdrawiam
Krzysztof
Darti
IMHO lepiej jak byś miał zapisaną pełną datę ...

  1. <?php
  2. $dataczas = array('10:20:15','10:26:18','11:02:24','11:02:30');
  3. $dane = array(1,20,22788,133);
  4.  
  5. foreach ($dataczas as $value){
  6.    $time[] = strtotime($value);
  7. }
  8.  
  9. for ($i = $time[0]; $i <= end($time); $i++){
  10.    $przepisac = array_search($i,$time);
  11.    if($przepisac === true){
  12.        $dane_wyj[$i] = $ostatnia_znana_dana = $dane[$przepisac];
  13.        $ostatni_znany_czas = $i;
  14.        $nastepna_znana_dana = $dane[$przepisac+1];
  15.        $nastepny_znany_czas = $time[$przepisac+1];                
  16.    } else {
  17.        $dane_wyj[$i] = $dane_wyj[$i-1] + ($nastepna_znana_dana - $ostatnia_znana_dana) / ($nastepny_znany_czas - $ostatni_znany_czas);
  18.    }
  19. }
  20. print_r($dane_wyj);
  21. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.