Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Greške
  • Crtanje svg html. SVG: osnove vektorske grafike u HTML-u

Crtanje svg html. SVG: osnove vektorske grafike u HTML-u

Ovaj zaključak proizilazi iz izvještaja predsjednika uprave "Bašnjefta", saopštenog skupštini dioničara kompanije, čiji je primjerak bio na raspolaganju uredništvu.

Iz dokumenta proizilazi da je kao rezultat geoloških istraživanja u 2018. otkriveno 81 produktivno ležište sa rezervama od 19 miliona tona.

Istovremeno, korištenje visoko efikasnih geoloških i tehničkih mjera i uvođenje modernih tehnologija za povećanu iskorištavanje nafte omogućilo je održavanje proizvodnje nafte na zrelim poljima u Baškiriji na nivou od 15 miliona tona iz 2017. do kraja 11 mjeseci. . Ukupan obim proizvodnje za navedeni period iznosio je 17,3 miliona tona nafte.

U izvještaju se također navodi da je stvaranje jedinstvenog proizvodnog lanca sa proizvodnim i prerađivačkim kompleksom Rosnjefta povećalo efikasnost rafinerija u Ufi i dovelo do smanjenja operativnih i logističkih troškova. Konkretno, savladana je proizvodnja Euro-6 benzina i pokrenuta je industrijska proizvodnja putnog bitumena prema novom GOST-u.

Obim maloprodaje na benzinskim stanicama Bašnjefta za 11 meseci 2018. godine povećan je za 13,2 odsto u odnosu na isti period prošle godine i dostigao je 1,7 miliona tona.

Za realizaciju strategije u oblasti petrohemije vrši se modernizacija petrohemijske proizvodnje. Tako je Ufaorgsintez u maju 2018. pustio u rad novu jedinicu za proizvodnju kumona - sirovine za proizvodnju boja, otapala, raznih polimera koji se koriste u automobilskoj industriji, medicini i farmakologiji. Sljedeći korak je rekonstrukcija kompleksa za proizvodnju aromatika u Ufaneftekhimu, izgradnja novih postrojenja za proizvodnju olefina u Ufaorgsintezu.

Konsolidovani operativni profit za 9 mjeseci 2018. godine povećan je za 22,6 posto u odnosu na isti period 2017. godine i iznosi 135,5 milijardi rubalja. Neto profit "Bašnjefta" dostigao je 74,6 milijardi rubalja, što je 73,5 odsto više nego u istom periodu prošle godine.

Tokom trećeg kvartala, Bashneft je akcionarima isplatio dividende objavljene na godišnjoj skupštini u junu 2018. u iznosu od 28,2 milijarde RUB, a ukupan iznos dividendi isplaćenih od početka godine iznosio je 43 milijarde RUB.

Istovremeno, nivo neto duga kompanije je smanjen i na dan 30. septembra 2018. iznosio je 40,1 milijardu rubalja (od istog datuma 2017. ova brojka je iznosila 104,7 milijardi rubalja).

Istovremeno, za izvještajni period, uplate poreza u budžet Baškortostana, uzimajući u obzir jednokratnu uplatu poreza na dohodak, porasle su 1,5 puta u odnosu na isti period prošle godine i iznosile su 50,5 milijardi rubalja.

Većina web stranica sadrži grafiku. Omogućava vam da šareno i jasno prezentirate informacije. U mnogim slučajevima, bolje je pokazati sliku nego dati dugačak tekstualni opis.
Postoje dva načina za postavljanje grafike na stranicu:

  • umetanje pojedinačnih slika;
  • popunjavanje pozadine slikom.

U svakom slučaju, grafika je preuzeta iz datoteke.

Grafička slika iz datoteke grafičkog formata se ubacuje na stranicu pomoću oznake (sa engleskog, slika - slika) navodeći adresu datoteke kao argument za SRC atribut:

Adresa datoteke slike je ili URL ili naziv datoteke, moguće sa putanjom. Na primjer, da biste prikazali grafičku datoteku logotip.jpg, napišite oznaku

Za povećanje brzine prijenosa grafičke slike u oznaci možete koristiti atribut (opciono) LOWSRC, koji uzima adresu grafičke datoteke kao argument. Možete kreirati dvije slikovne datoteke: jedna (na primjer, logotip.jpg) sadrži sliku visoke rezolucije, a druga (na primjer, logotip.gif) sadrži sliku niske rezolucije. Zatim oznaka

Kaže pretraživaču da prvo preuzme datoteku logotip.gif, a zatim je zamijeni datotekom logotip.jpg čim bude primljena.
Drugi način da se ubrza učitavanje grafike je da odredite veličinu pravougaonog područja u koje će grafika biti postavljena pomoću atributa WIDTH (širina) i HEIGHT (visina), mjereno u pikselima. Ako navedete ove atribute, pretraživač će prvo dodijeliti prostor za grafiku, pripremiti izgled dokumenta, prikazati tekst i tek onda učitati grafiku. Imajte na umu da pretraživač smanjuje ili rasteže sliku kako bi se uklopila u okvire određene veličine. Primjer određivanja veličine slike:

Grafika se obično koristi zajedno sa tekstom, pa se nameće zadatak usklađivanja teksta i grafike. Ovaj zadatak se postiže korištenjem atributa ALIGN tag koristeći razne argumente. Na primjer, možda želimo da tekst teče oko slike desno ili lijevo. Obično je slika ugrađena blizu teksta, što može biti ružno. Da biste to izbjegli, možete postaviti prazne margine oko ilustracije. Polja se kreiraju pomoću atributa VSPACE za gornje i donje margine i NSPACE za bočne margine u oznaci ... Argumenti za ove atribute su navedeni kao brojevi koji određuju veličinu margina u pikselima. Da biste otkazali protok teksta oko grafike, koristite oznaku
.
Sljedeća oznaka postavlja tok grafike iz datoteke logotip.jpg na desno (slika će biti lijevo od teksta):

Ako želite da pozicionirate sliku desno od teksta, onda vam je potreban atribut ALIGN dodijeliti argument PRAVO:

Da biste postavili polja oko slike, potrebno je da napišete oznaku ovako:

Ovdje brojevi 20 i 10 određuju veličinu polja.
Razmotrimo primjer dijeljenja grafike i teksta. Otvorite Notepad (uređivač teksta Notepad) Windows. Napišite HTML kod u njemu koristeći oznake o kojima smo gore govorili. Ispod je program koji daje neki tekst i grafiku. Bilo koja datoteka koju imate može se koristiti kao grafička datoteka. Ovo koristi datoteku logotip.gif.


Vježba 1



<Н1>Tekst se prelama oko grafike s desne strane
Ovo je primjer kombinacije teksta i grafike.
Tekst HTML programa može se napisati u bilo kojem uređivaču teksta. Ovo koristi oznake za označavanje teksta.

Ovaj tekst se prikazuje sa novim pasusom. Da bismo to učinili, koristili smo posebnu oznaku.


Pokušajte promijeniti veličinu prozora pretraživača. Obratite pažnju na to kako se izgled teksta mijenja.

Rice. 657. Tekst se prelama oko slike sa desne strane

Pružaju brojne mogućnosti za precizno pozicioniranje slika (kao i drugih elemenata) na stranici stolovi i stilova... O ovim HTML elementima će biti reči kasnije. Na primjer, možete definirati tabelu bez vidljivih okvira i smjestiti slike, tekstove i druge elemente u ćelije ove tablice.

SVG (Scalable Vector Graphics) je standard vektorske grafike koji je razvio W3C konzorcij.

SVG je jezik za označavanje za opisivanje 2D grafičkih aplikacija i slika, i podskup je proširivog XML jezika za označavanje. Ovo također uključuje brojne povezane grafičke skripte.

SVG podržavaju svi moderni pretraživači za računare i mobilne uređaje. Neke funkcije kao što su SMIL animacija i SVG fontovi se ne koriste široko.

Najnovija verzija kompletne specifikacije je SVG 1.1.

SVG 2 je u razvoju. Dodat će nove funkcije za SVG jednostavne za korištenje i raditi na čvršćoj integraciji sa HTML-om, CSS-om i DOM-om.

Vrline SVG-a

  • SVG grafika se kreira pomoću matematičkih formula koje se mogu podesiti kada se promeni veličina slike. Stoga su vektorske slike bolje skalirane od rasterskih slika.
  • Veličina vektorske slike je obično manja od JPEG, GIF ili PNG slika uporedivog kvaliteta.
  • SVG grafika ima tekstualni format koji se može uređivati ​​u notepadu i crtati u grafičkim vektorskim uređivačima Adobe Illustrator, CorelDRAW.
  • Skriptiranje i animacija u SVG-u vam omogućavaju da kreirate dinamičnu i interaktivnu grafiku.
  • Tekst u SVG grafici je tekst, a ne slika, zbog čega ga pretraživači indeksiraju.
  • U SVG sliku se može dodati više veza.
  • Možete povezati eksterne CSS stilove sa SVG formatom, globalne stilove unutar kontejnera ili dodajte inline stilove koristeći atribut style na oznakama oblika i putanje.

Umetanje SVG-a u web stranicu

SVG slika se može umetnuti u web stranicu na nekoliko načina. Prvi je jednostavno umetanje SVG koda u stranicu (sa velikom slikom, HTML kod stranice će postati ogroman i teško čitljiv). Kod drugih metoda, prvo morate da sačuvate SVG kod u datoteci sa ekstenzijom .svg.

Dakle, evo načina da ugradite SVG sliku u web stranicu:

  • direktno umetanje koda u HTML dokument u kontejneru ... ;
  • korištenje SVG datoteke kao pozadinske slike;
  • povezivanje SVG datoteke sa HTML dokumentom pomoću oznaka img, embed, objekt i iframe;
  • povezivanje SVG datoteke sa PHP dokumentom pomoću funkcije uključiti.
1. Direktno umetanje SVG koda u web dokument
2. Korišćenje SVG datoteke kao pozadinske slike
3. Povezivanje SVG datoteke pomoću oznake img
4. Uključujući SVG datoteku koristeći oznaku za ugrađivanje
5. Povezivanje SVG datoteke pomoću oznake objekta
6. Uključujući SVG fajl koristeći iframe tag
7. Uključujući SVG fajl pomoću funkcije uključivanja

Koordinatni sistem

Dimenzije i koordinate se mogu specificirati u različitim jedinicama (px, pt, pc, cm, mm, em, in). Ako jedinice nisu navedene, onda su to pikseli.

Izvor koordinata je gornji lijevi ugao ekrana, tj.

Osnovni SVG elementi

Primjer stroke-dasharray Naizmjenični potezi i razmaci na isprekidanoj liniji Primjer stroke-dashoffset Primjer pomaka crtice ispuniti Boja ispune (nema - nema ispune) fill-opacity Popunite prozirnost (0 do 1) pravilo popunjavanja Pravilo popunjavanja.
Moguće vrijednosti atributa: stil Element stil klasa Klasa elemenata

Duž

Određeno oznakom .

Atributi oznake
Primjer

REZULTAT:

Prekinuta linija

Određeno oznakom .

Atribut oznake
Primjer

REZULTAT:

Poligon

Određeno oznakom ... Uvijek crta zatvorene oblike automatski povlačeći liniju od kraja posljednjeg segmenta do početka prvog.

Atribut oznake
Primjer

REZULTAT:

Pravougaonik

Određeno oznakom .

Atributi oznake
Primjer

REZULTAT:

Krug

Određeno oznakom .

Atributi oznake
Primjer

REZULTAT:

Teška putanja

Određeno oznakom ... To je najsvestraniji od SVG elemenata. Omogućuje vam kreiranje prilagođenih oblika. Oblik figure je određen atributima dčija je vrijednost skup posebnih naredbi. Ove naredbe mogu biti i velikim i malim slovima. Velika slova označavaju da je primijenjeno apsolutno pozicioniranje, mala označavaju relativno pozicioniranje.

Naredbe za definiranje putanje i smjera kovrčave linije
M, m polazna tačka
Mx, y
Ll Segment linije
Lx, y
H, h Horizontalna linija
Hx, y ili hx
V, v Vertikalna linija
Vx, y ili vy
Aa Ellipse luk
Arx, ry x-osi-rotacija velika-lučna zastavica, sweep-flag x, y
rx, ry- poluprečnika luka elipse;
rotacija x-ose- ugao rotacije luka u odnosu na X-osu;
veliki luk-zastava- ako je (= 1), tada je izgrađen veći dio luka, ako je (= 0) - manji dio;
sweep-flag- ako je (= 1), tada se luk crta u smjeru kazaljke na satu, ako je (= 0) - u suprotnom smjeru;
x, y- koordinate krajnje tačke luka.
C, c Kubična Bezierova kriva
Cx1, y1 x2, y2 x, y
x1, y1- koordinate prve kontrolne tačke;
x2, y2
x, y
S, s Glatka kubična Bezierova kriva
Sx2, y2 x, y
x2, y2- koordinate druge kontrolne tačke;
x, y
Prva kontrolna tačka je zrcalna slika druge kontrolne tačke.
Q, q Kvadratna Bezierova kriva
Qx1, y1 x, y
x1, y1- koordinate kontrolne tačke;
x, y- koordinate krajnje tačke krive.
T, t Glatka kvadratna Bezierova kriva
Qx1, y1 x, y
x, y- koordinate krajnje tačke krive.
Kontrolna tačka ove komande je zrcalna slika kontrolne tačke prethodne komande.
Z, z Zatvaranje puta
Primjer

REZULTAT:



.

Za uključivanje slike na određeno mjesto na stranici postoji oznaka ... Ova oznaka ima obavezan parametar: SRC = "", i nekoliko opcionih. SRC = "" parametar govori pretraživaču adresu na kojoj treba tražiti sliku i mora imati URL resursa na kojem se nalazi datoteka slike kao vrijednost. U najjednostavnijem slučaju, ova datoteka će se nalaziti u korijenskom direktoriju ili u IMG folderu vaše stranice. Opcioni parametri:

Parametar ALT = "" sadrži natpis kao vrijednost koja govori o sadržaju slike za one posjetitelje čiji pretraživači ne podržavaju grafiku ili rade u onemogućenom grafičkom načinu. Isti natpis se pojavljuje kada pomerite pokazivač miša preko slike.

Parametri WIDTH = "" HEIGHT = "" kao vrijednosti imaju dimenzije slike u širini i visini u pikselima. Preporučljivo je navesti ove parametre u kodu stranice kako bi pretraživač unaprijed ostavio mjesta za sliku, a zatim će se, prilikom učitavanja, stranica manje "trzati". Osim toga, ovi parametri se mogu koristiti za podešavanje veličine slike u prozoru pretraživača.

Parametar BORDER = "" crta ivicu oko slike. Vrijednost je broj koji označava širinu okvira u pikselima.

Parametar ALIGN = određuje položaj slike na stranici i može imati vrijednosti TOP - poravnava gornju ivicu slike sa najvišim elementom tekuće linije, TEXTTOP - poravnava gornju ivicu slike sa najvišim tekstualni element tekuće linije, MIDDLE - poravnava sredinu slike sa baznom linijom tekuće linije, ABSMIDDLE - poravnava sredinu slike sa sredinom tekuće linije. BASELINE ili BOTTOM - poravnava donju ivicu slike sa osnovnom linijom trenutne linije, ABSBOTTOM - poravnava donju ivicu slike sa donjom ivicom trenutne linije, HSPACE = - određuje horizontalnu uvlaku, VSPACE = - određuje vertikalna uvlaka.

Sintaksa oznake:

Ticker

Puzajuću liniju postavlja oznaka .

Atributi ove oznake su bgcolor - boja pozadine puzeće linije, visina - visina linije, širina - širina linije.

Smjer - postavlja smjer kretanja puzeće linije - smjer = "lijevo" (desno, gore, dolje) - kretanje lijevo (desno, gore, dolje).

Ponašanje - ponašanje niza - ponašanje = "scroll" (slajd, alternativno). Scroll - normalno pomicanje (možete ostaviti prazno, to je po defaultu)



Klizanje - pomeranje sa zaustavljanjem, linija ide do ivice i staje. Ako se parametar petlje koristi istovremeno sa behavor = "slide", tada će linija skrolovati postavljeni broj puta i zaustaviti se na rubu. Alternativno - linija će se pomicati od ruba do ruba.
Scrollamount - brzina linije, scrollamount = "1". Može imati vrijednosti od 1 do 10. 1 - najsporije kretanje, 10 - najbrže.

Sintaksa oznake: tekst

Moderni web pretraživači mogu reproducirati video i audio datoteke u različitim formatima. Da bi to učinili, koriste ugrađene plejere (dodatak, ActiveX kontrole) ili eksterne programe za reprodukciju. Možete umetnuti audio ili video u HTML dokument koristeći različite oznake:

- za umetanje pozadinskog zvuka;

- za umetanje video zapisa u AVI formatu;

- za umetanje audio i video fajlova;

- za umetanje audio i video fajlova.

Kada odlučujete da umetnete zvuk i/ili video u HTML dokument, imajte na umu da su uključene datoteke prilično velike. Najpopularnije datoteke na webu su sada MP3, WMA, AIFF, AU, RealAudio (sa ra i ram ekstenzijama), MP4, MIDI i MPEG, MOV video formati. WAV audio format i AVI video format se rijetko koriste na Internetu.

(Pregledni članak nakon konferencije o razvoju softvera u Jekaterinburgu i drugi govori. Video verzija izvještaja u Jekaterinburgupogledajte na techdays.ru )

Šta su HTML5 Canvas i SVG?

HTML5 Canvas

- element je platno za prikazivanje bitmap grafike. U stvari, to je prazan blok specificiranih dimenzija na koji možete crtati koristeći posebne API-je za JavaScript.

API uključuje 45 specijalnih metoda i 21 atribut koji se koristi za prikaz grafičkih primitiva, postavljanje stilova, transformacije, pristup pojedinačnim pikselima, projektovanje slika i video zapisa.

Ja sam element je definiran direktno u HTML5 specifikaciji. API za to je opisan u posebnom dokumentu - HTML Canvas 2D Context.

SVG

Muzika može biti zabavna

Prekrasna muzičko-grafička vizualizacija igre (http://musiccanbefun.edankwan.com/).

Primjeri SVG šema

Dijagram ljudskog skeleta, periodični sistem hemijskih elemenata i respiratorni sistem (http://ie.microsoft.com/testdrive/Graphics/RealWorldDataAndDiagrams/Default.xhtml).

Yandex Maps

Bliži primjer iz stvarnog života - prilikom renderiranja ruta koristi se SVG (ako pretraživač podržava). Pogledajte također „Mape i SVG“ razgovor iz našeg HTML5 kampa.

Više primjera:

  • Beauty of the Web http://www.beautyoftheweb.com/ - stvarne stranice iz stvarnog svijeta
  • Dev: unplugged http://contest.beautyoftheweb.com/ - konkurentski projekti za HTML5 aplikacije

Razlika između Canvasa i SVG-a

U različitim scenarijima, za dinamičko prikazivanje grafike, ili Canvas ili SVG mogu biti prikladniji - vratit ćemo se na ovo pitanje na kraju. Za sada, hajde da se zadržimo na ključnim razlikama između jednog i drugog:

Platno SVG
Format Raster Vector
Skaliranje
Pristup

Individualni pristup pikselima (RGBA)

Pristup pojedinačnim elementima (DOM)

Indeksabilnost i dostupnost

Vidljiv je samo konačni raster (ne možete odabrati oblike, tekst, itd.) - loše za Pristupačnost

Možete vidjeti strukturu (na primjer, izvucite sav tekst)

Stilizacija

Vizuelni stilovi se postavljaju prilikom prikazivanja kroz API

Vizuelni stilovi su postavljeni atributima, možete uključiti CSS

Programiranje

JS API za rad sa primitivima

DOM za rad sa elementima

Ažuriraj

Za ažuriranje - prekrivanje ili potpuno ponovno crtanje

Moguće je mijenjati pojedinačne elemente

Razvoj

Ne postoji jednostavan način za rukovanje događajima miša. Objekti ispod kursora moraju se definirati ručno.

Događaji od miša preko DOM-a se lako spuštaju, obrađuju se automatski.

Integracija koda

JS kod odvojen od Canvasa

Unutra možete uključiti JS

Ove razlike se moraju uzeti u obzir kada se koristi određena tehnologija za vizualizaciju podataka. Na primjer, crtanje grafa funkcije može biti lakše sa Canvas-om, dok prikazivanje opisa (sa definicijom objekta ispod pokazivača miša) može biti lakše uraditi sa SVG-om.

U praksi, međutim, već postoji niz gotovih biblioteka za vizualizaciju podataka koje djelimično nadoknađuju ove razlike.

Neću ulaziti u osnove rada sa svakom od tehnologija, preporučujem razgovor Vadima Makeeva (Opera) sa HTML5 kampom „Dinamička grafika: Canvas i SVG“ kao uvod.

Pogledajte i izvještaje MIX 2011:

Obrada slike sa platnom

Jedna od značajnih karakteristika Canvas-a je da pruža piksel po piksel pristup prikazanim podacima i omogućava da se različiti grafički elementi, uključujući video, projektuju na platno.

Dobar primjer gdje je to potrebno je zadatak obrade / analize slike.

Processing.js nudi dva pristupa opisivanju vizualizacije: srednji kod, koji dalje analizira sama biblioteka (u zasebnom fajlu ili unutar stranice), i eksplicitni JavaScript kod.

Na primjer, da nacrtate fraktalni Mandelbrotov skup, možete koristiti ili opciju naznačenu na stranici s odgovarajućim primjerom ili sljedeći JavaScript kod:

var xmin = -2,5; var ymin = -2; var wh = 4; funkcija sketchProc (obrada) (processing.setup = funkcija () (processing.size (200, 200); processing.noLoop ();); processing.draw = funkcija () (processing.loadPixels (); var maxiterations = 200; var xmax = xmin + wh; var ymax = ymin + wh; var dx = (xmax - xmin) / (širina obrade); var dy = (ymax - ymin) / (visina obrade); var y = ymin; za (var j = 0; j< processing.height; j++) { var x = xmin; for (var i = 0; i < processing.width; i++) { var a = x; var b = y; var n = 0; while (n < maxiterations) { var aa = a * a; var bb = b * b; var twoab = 2.0 * a * b; a = aa - bb + x; b = twoab + y; if (aa + bb >16.0) (prekid;) n ++; ) if (n == maksiteracije) process.pixels.setPixel (i + j * obrada.width, 0); ostalo obrada.pixels.setPixel (i + j * obrada. širina, obrada. boja (n * 16% 255)); x + = dx; ) y + = dy; ) process.updatePixels (); ); ) var canvas = document.getElementById ("myCanvas"); var p = nova obrada (platno, sketchProc);

Možete i sami isprobati ovdje: http://silverbook.ru/projects/html5datavisualization/demo3-processingjs.htm (kopirajte kod, zalijepite ga u konzolu i izvršite).

JavaScript InfoVis Toolkit (JIT)

Za prikaz podataka, JIT uzima početne vrijednosti kao JSON:

var json = ("oznaka": ["oznaka A", "oznaka B", "oznaka C", "oznaka D"], "vrijednosti": [("oznaka": "datum A", "vrijednosti":) , ("oznaka": "datum B", "vrijednosti":), ("oznaka": "datum E", "vrijednosti":), ("oznaka": "datum F", "vrijednosti":), ( "label": "datum D", "values":), ("label": "date C", "values":)]); var pieChart = new $ jit.PieChart ((injectInto: "infovis", animate: true, offset: 30, sliceOffset: 0, labelOffset: 20, tip: "stacked: gradient", showLabels: true, resizeLabels: 7, Label: (tip: "Native", veličina: 20, porodica: "Arial", boja: "white"), Savjeti: (omogući: true, onShow: funkcija (tip, elem) (tip.innerHTML = " "+ elem.name +": "+ elem.value;))));

samo pozovite renderiranje:

PieChart.loadJSON (json);

jQuery Sparklines

Renderiranje na mapi sa SVG

Pređimo na SVG i počnimo s jednostavnim primjerom. Zamislite da trebate prikazati neke podatke na mapi regija, koji je najlakši način da to učinite?

Ako imate gotovu kartu u obliku SVG (mapu Rusije sam uzeo sa stranice Wikipedije), onda se to radi vrlo jednostavno - dovoljno je da unutar SVG dokumenta svaka regija ima svoj jedinstveni ID, onda umetnite mapu kao inline svg i obojite je jednostavnim kodom u željenu boju:

var SverdlovskOblast = document.getElementById ("SverdlovskOblast"); SverdlovskOblast.style.fill = "# fe3300";

Ako učinite isto u ciklusu, tada već možete obojiti ne samo regiju, već cijelu regiju ili čak cijelu državu:

var data = [(id: "KurganOblast", vrijednost: 30), (id: "SverdlovskOblast", vrijednost: 200), (id: "TyumenOblast", vrijednost: 75), (id: "KhantiaMansia", vrijednost: 100 ), (id: "YamaloNenetsAutDistrict", vrijednost: 20), (id: "ChelyabinskOblast", vrijednost: 150)]; za (var i = 0; i< data.length; i++) { var item = data[i]; var region = document.getElementById(item.id); region.style.fill = RGBtoHex(item.value, 0, 0); }

Biblioteke za vizualizaciju podataka sa SVG

Kao što sam rekao, i Canvas i SVG su pogodni za rješavanje tradicionalnog problema vizualizacije numeričkih podataka u obliku grafikona i grafikona. U oba slučaja, to se može učiniti prilično lako koristeći odgovarajuće biblioteke.

Već smo pogledali primjere sa Canvas-om, pogledajmo sada nekoliko biblioteka za rad sa SVG-om. (Ovo također nije potpuna lista, već kvalitetna i popularna rješenja.)

Raphaël

Za dodavanje jednostavnog tortnog grafikona dovoljan je sljedeći kod:

var r = Raphael ("grafikon", 640, 480); var pie = r.g.piechart (320, 240, 100,);

Uz nekoliko dodatnih operacija, možete dodati legendu, natpise grafikona i interaktivne savjete:

var r = Raphael ("grafikon", 640, 480); r.g.txtattr.font = "12px" Fontin Sans ", Fontin-Sans, sans-serif"; r.g.text (320, 100, "Interaktivni tortni grafikon") .attr (("font-size": 20)); var pie = r.g.piechart (320, 240, 100,,
(Legenda: ["%%. %% - Poslovni korisnici", "IE korisnici"], legenda: "zapad",
href: ["http://raphaeljs.com", http://g.raphaeljs.com]});
pie.hover (funkcija () (ova .sector.stop (); ovo .sector.scale (1.1, 1.1, ovo .cx, ovo .cy); if (ova .oznaka) (ova .label.stop (); ovaj .label.scale (1.5); ovaj .label.attr (("font-weight": 800));)), funkcija () (ovaj .sector.animate ((scale:), 500, "bounce") ; if (ova .oznaka) (ova .label.animirana ((razmjera: 1), 500, "odskakanje"); ovaj .label.attr (("font-weight": 400));)));

Slično, možete prikazati druge vrste grafikona koristeći odgovarajuće metode. Pogledajte primjere direktno na stranici proširenja http://g.raphaeljs.com/

Highcharts JS

API biblioteke olakšava generiranje grafikona iz podataka u JSON-u:

var chart1 = novi Highcharts.Chart ((grafikon: (renderTo: "charts", defaultSeriesType: "bar"), title: (tekst: "Potrošnja voća"), xAxis: (kategorije: ["Jabuke", "Banane", "Narandže"]), yAxis: (naslov: (tekst: "Voće jedeno")), serija: [(ime: "Jane", podaci:), (ime: "John", podaci:)]));

Uz malo složeniju skriptu, možete odrediti dodatne detalje, na primjer, prikazati legendu, prilagoditi savjete:

var chart = novi Highcharts.Chart ((grafikon: (renderTo: "charts", defaultSeriesType: "area", proredBottom: 30), naslov: (tekst: "Potrošnja voća *"), podnaslov: (tekst: "* Janeina potrošnja banana je nepoznata", plutajući: istina, poravnanje: "desno", vertikalno poravnanje: "dno", y: 15), legenda: (izgled: "vertikalno", poravnanje: "lijevo", vertikalno poravnanje: "vrh", x: 150, y: 100 , floating: true, borderWidth: 1, backgroundColor: "#FFFFFF"), xAxis: (kategorije: ["Jabuke", "Kruške", "Narandže", "Banane", "Grožđe", "Šljive", "Jagode" , "Maline"]), yAxis: (naslov: (tekst: "Y-Axis"), oznake: (formater: funkcija () (vrati ovu .value;))), opis: (formater: funkcija () (povratak " "+ ovaj .series.name +"
"+ ovo .x +": "+ ovo .y;)), plotOptions: (područje: (fillOpacity: 0,5)), serija: [(ime:" John ", podaci:), (ime:" Jane ", podaci:)]));

Ako je potrebno, možete zamijeniti zadane stilove vlastitim.

Da li da odaberem Canvas ili SVG?

Kao što možete vidjeti iz gornjih primjera, obje tehnologije su često prikladne za zadatke vizualizacije podataka. Mnoge stvari se rade na sličan način. U slučajevima kada je potreban izlaz piksel po piksel, Canvas je očito bolje prilagođen. Tamo gdje se dijagram razlaže na pojedinačne objekte u kojima treba održavati interaktivnost, SVG je prikladniji.

Platno je bolje prilagođeno
  • Uređivanje bitmap grafike
  • Primjena efekata na grafiku / video zapise
  • Generisanje rasterske grafike (vizuelizacija podataka, fraktali, grafovi funkcija)
  • Analiza slike
  • Grafika igre (sprijtovi, pozadine, itd.)
SVG je bolje prilagođen
  • Skalabilni interfejsi
  • Interaktivni interfejsi
  • Dijagrami, šeme
  • Uređivanje vektorskih slika

U grafičkom obliku, ovo se može predstaviti na sljedeći način:

Konačno, još jedan važan odsječak koji je također važno uzeti u obzir pri odabiru tehnologije je renderiranje performansi kada se koristi Canvas i SVG:

U praksi, platno bolje funkcionira s malim veličinama područja za renderiranje i velikim brojem objekata, u SVG-u je pogodnije kada trebate skalirati ili prikazati na velikom ekranu i na ne previše objekata koji se prikazuju istovremeno.

Top srodni članci