Zdravím,
mám již téměř dokončený projekt na vykreslení grafů ve formátu SVG. Zatím jde jen o čárové grafy, později doplním i koláčové a sloupcové.
No, ono to téměř dokončený vlastně znamená to, že projekt funguje. Chybí však dodělat například mechanismy na zpracování dalších dat ( do podoby, kterou potřebuje vlastní třída, která SVG vytváří) a pár dalších drobností. A jedna z nich je tou, která mě v tuto chvíli zajímá mnohem více než nějaké zpracování dat (pro které bych musel mít k dispozici nějaké další vzorky v těch žádaných formátech, z kterých bych ta data exportoval).
Pro čárové grafy jsem chtěl (do pozadí, jako jednu z nižších vrstev) přidat síť čar imitující milimetrový papír. Bohužel, vytvoření milimetrového papíru je velmi zdlouhavé (a bohužel i paměťově náročné) - čemuž se není co divit, když má být vytvořeno například 1200 horizontálních a 24000 vertikálních čar (nebo i více).
Chci tedy tento milimetrový papír přidat až dodatečně, po vytvoření základního grafu.
Ovšem, nejsem si jist, která z následujících cest je nejlepší. Ani jedna však neumožní, aby byl milimetrový papír součástí obsahu uloženého do souboru, pokud nedojde k vykreslení SVG na plochu - před vytvořením souboru.
1. JavaScript + PHP (oba směry čar najednou)
2. JavaScript + PHP (každý směr čar zvlášť)
3. JavaScript
A nebo bych SVG uložil do souboru bez milimetrového papíru - a ten doplnil až po opětovném načtení. Ovšem pak hrozí, že v případě stažení a otevření jinde milimetrový papír nebude k dispozici vůbec.
V tuto chvíli jako zdroj dat používám CSV soubory generované appkou IoTool. Aby byl projekt rozšiřitelný (například o import z dalších zdrojů), je rozdělen do tří částí. První se stará o konverzi dat z původního zdroje do pole, které je poté použito jako vlastní zdroj dat pro graf. Druhá část se stará o paměť tohoto pole (a dalších dat). A třetí část se stará o konverzi do podoby grafu.
V případě použití atributu viewbox a mm jako jednotky u velikosti, by měla milimetrová síť odpovídat skutečnosti. Ale vyzkoušené to, bohužel, nemám.