Výběr typu uložení dat pro Grafy generované JS – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výběr typu uložení dat pro Grafy generované JS – JavaScript, AJAX, jQuery – Fórum – Programujte.comVýběr typu uložení dat pro Grafy generované JS – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
MilanL+1
Grafoman
20. 7. 2022   #1
-
0
-

Ahoj,

řeším grafické rozhraní pro několik sensorů a přemýšlím, jak zorganizovat načítaná data resp. zda použít

vícerozměrné pole nebo strukturu nebo objekt-třída,  návrhy případně s ukázkou implementace plnění a přístupu k datům

Co se týče dat tak tam jde např. o limity hodnot (teploty, vlhkost)  rok a měsíc tzn sensor, rok, měsíc, minT, maxT [, minV, maxV]

případně data: Senzor. rok, mesic, den, hodina a 12 (T) nebo 24 (T+V) hodnot (měření v 5min intervalu)

za nasměrování předem děkuji.

Nahlásit jako SPAM
IP: 91.139.9.–
peter
~ Anonymní uživatel
3981 příspěvků
20. 7. 2022   #2
-
0
-

mysql? json/text soubor? csv/text soubor?
Ja si ted hraji s jednoduchym hlasovanim s hvezdickami a ukladam to do json. Potrebuji to pro kiosky, pc vedle ucebny, kde to uzivatele muzou hnedka oznamkovat. Ukladam to prave do json souboru pres file_get_content file_put_content.
 

Nahlásit jako SPAM
IP: 193.84.196.–
21. 7. 2022   #3
-
0
-

Nebylo by lepší na malování grafů použít něco hotového? Mě se osvědčil chart.js  https://www.chartjs.org/  Pro přenos dat server -> klient používám JSON.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
MilanL+1
Grafoman
21. 7. 2022   #4
-
0
-

#3 hlucheucho

no o chart.js vím.

Vytvoření grafů pomoc HTML5 a canvasu pro mě není problém.

Problém je organizace vstupních dat v JS bo nepoužívám DB a server. 

Kopii originálních dat importují laboranti z csv (pouze čtení) uložených na výrobním serveru, do excelu kvůli potřebě doplňování:

- chybějících časů (výpadky el., údržba serveru, apod) - automatika při importu
- kontrolních záznamů
- poznámek k údajům mimo limity

Organizace je v ročních sešitech s listy po měsících a skupinách senzorů.

Jednoduché měsíční grafy nejsou problém udělat v excelu problémem je množství dat (pro každý senzor a veličinu cca 9000 ůdajů/měsíc - potřeba rozdělení např po týdnech nebo dekádách) a grafy mezi roky např, vybraný sensor, měsíc a za každý rok. A navíc tak aby to zvládl obsluhovat laik, tzn nějaký formulář s výběrem senzorů, období, rozložení senzor/měsíce, měsíc/senzory. Navíc tak, aby se to dalo tisknout.

Nahlásit jako SPAM
IP: 91.139.9.–
MilanL+1
Grafoman
21. 7. 2022   #5
-
0
-

Neřeším přenosy dat ale jejich uložení ke zpracování v grafu. V JS nejsem tak zběhlý a má určitá specifiky v přístupu k polím a objektům

Nahlásit jako SPAM
IP: 91.139.9.–
Řešení
peter
~ Anonymní uživatel
3981 příspěvků
21. 7. 2022   #6
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

Pro sledovani pc site u nas pouzivame zabbix. Resi datove toky i teplotni senzory. Pradepodobne by si poradil i s tvymi daty.
Osobne jsem nic takoveho neresil. Mam tu program v js na otevirani csv souboru a vypsani do tabulky a zpetny export do csv vybranych radku. Jestli by ti to bylo k necemu dobre...

V js se pouzivaji tyto zapisy:
 

<script> --- netestovano
// zapis stringu
str = 'text';
str = "text";
str = `text`;

str = 'te\
xt';
str = "te\
xt";
str = `te
xt`

// json
out = JSON.stringify(str)
out = JSON.parse(str)

// osizene csv
out = [];
rows = str.split("\n");
end = rows.length;
for (i=0; i<end; i++)
  out[i] = rows[i].split(';');

// pole
arr = [0, 1, 2, 3];
arr[0] = 4; // [4, 1, 2, 3];
list = {a:0, b:1, c:2}
list = {'a':0, 'b':1, 'c':2}
list['a'] = 3 // {a:3, b: 1, c:2}
list.a = 3 // to je mozne pouzit, kdyz mas klice prvni znak a-z a dalsi a-z0-9 
// kombinace poli
list = {}
list.pondeli = [1,2,3];
list.utery   = [1,2,3];
list = {
  pondeli: [1,2,3],
  utery:   [1,2,3]
}
list = {
  '22.2.2008': [1,2,3],
  '23.2.2008': [4,5,6]
}
alert(list['22.2.2008'][2]) // 3 (index je 2 (pozice v ciselnem polis e cisluje od 0) a na druhem miste je hodnota 3 [x,x,3])

list = {
  '2008': {
     '2': {
       '22': [1,2,3],
       '23': [4,5,6]
        },
     '3': {
       '22': [7,8,9],
       '23': [10,11,12]
        }
      }
  '2009': {}
}
alert(list['2008']['2']['23']) // [4,5,6]

arr = [
  [1,2,3],
  [4,5,6]
]

str = "\
1;2;3\n\
4;5;6\n\
";
out = [];
rows = str.split("\n");
end = rows.length;
for (i=0; i<end; i++)
  out[i] = rows[i].split(';');
alert(out[1][2]) // 6
</script>
Nahlásit jako SPAM
IP: 2001:718:2601:258:2df3:5c6:3f2d:e38f...–
MilanL+1
Grafoman
22. 7. 2022   #7
-
0
-

#6 peter
dík, vyzkouším, to je přesně to co jsem potřeboval, ještě otázečka, myslíš že by se daly použít místo roku měsíce a dne použít proměnné, případně řádka textu ze souboru.

Když by to jinak nešlo vygeneruji si ty pole rovnou v exportu a do JS vložím jako include.

Nahlásit jako SPAM
IP: 91.139.9.–
MilanL+1
Grafoman
22. 7. 2022   #8
-
0
-

Tak to mám vyřešené díky, bylo to v pochopení rozdílu mezi čistým array [] a arraylistem {}

Funguje mi to v testu takto, a je to přesně ten způsob který jsem potřeboval pro většinu dat.

list2={}

for (r=2020;r<=2022;r++){
  list2[r] = {}
  for (m=1;m<=12;m++){
    list2[r][m] = {min:r-m, max:r+m}
  }
}

a=list2[2020][12].min
if (a) {                 //TEST
    console.log(a)
} else {
  console.log("nedefinovaný index")
}
Nahlásit jako SPAM
IP: 91.139.9.–
peter
~ Anonymní uživatel
3981 příspěvků
22. 7. 2022   #9
-
0
-

Jj, jen bylo tezke pochopit z tech dotazu, ze te zajima prave tohle. Jakym zpusobem se zapisuji data v js. Neco, co se da snadno vygooglovat.
google = js array examples
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:5530:5427:ec18:7a7f...–
gna
~ Anonymní uživatel
1856 příspěvků
22. 7. 2022   #10
-
0
-

V JS arraylist neexistuje a {} je objekt.

Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
3981 příspěvků
23. 7. 2022   #11
-
0
-

Ono se to nazyvalo vzdy asociativni pole. Objekty prisli az potom.

Nahlásit jako SPAM
IP: 193.84.196.–
gna
~ Anonymní uživatel
1856 příspěvků
24. 7. 2022   #12
-
0
-

Objekty jsou v JavaScriptu (resp. ECMAScriptu) od začátku. Ale ano, technicky je to asociativní pole.

Mně šlo jen o upřesnění, že `{}` se říká objekt, aby nenarazil na nepochopení s pojmem `arraylist`, což je něco jiného a v JS takový pojem neexistuje.

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Ukládání dat pro grafy — založil Carduus

Uložení dat — založil crAzY^

Uložení dat do souboru — založil neOph

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý