Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML][SQL]Wykres linowy z nieregularną stałą czasową -, Baza MSSQL wykres linowy
kewy
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.03.2009

Ostrzeżenie: (0%)
-----


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:
(IMG:http://img207.imageshack.us/img207/732/wykresp.png)

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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował kewy 29.04.2009, 10:30:28
Go to the top of the page
+Quote Post
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
kewy
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.03.2009

Ostrzeżenie: (0%)
-----


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 ? ;/
Go to the top of the page
+Quote Post
kewy
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.03.2009

Ostrzeżenie: (0%)
-----


Witam serdecznie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Mam następujący problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
mam następujące dane z bazy danych:
(IMG:http://img242.imageshack.us/img242/8067/amigwka.png)

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 (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) podam niżej przykładowy wykres
(IMG:http://img207.imageshack.us/img207/732/wykresp.png)


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

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

pozdrawiam
Krzysztof
Go to the top of the page
+Quote Post
Darti
post
Post #5





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował Darti 30.04.2009, 18:30:04
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 20:21