Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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:


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

Ten post edytował kewy 29.04.2009, 10:30:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
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.


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
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 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
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


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 03:53