Pitäisikö minun oppia ggplot2: n tai ggvis: n piirtämiseen R: llä? En välttämättä halua oppia molempia, jos toinen niistä on ylivoimainen. Miksi R-yhteisö jatkaa uusien pakettien luomista päällekkäisillä toiminnoilla? -blogiviesti ei mainitse sanaa miksi ggvis luodaan, kun otetaan huomioon, että hienostunut piirtopaketti ggplot2 on jo olemassa.

Kommentit

  • ggvis on täysin erilainen kalakattila Todellinen vaihtoehto on ggplotin ja ristikon välillä.
  • Luulen, että vastaus riippuu siitä, mitä ’ re after. Jos ’ etsit staattisia edistyneitä tontteja, ’ haluat oppia ggplot2. Harkitse verkkovisualisointia varten ggvis.

Vastaa

Aloita ggplot2: lla. Se luo staattisia kaavioita.

Staattisten juonien lisäksi myös ggvis: ää voidaan käyttää vuorovaikutteisten juonien luomiseen. Kun y olet oppinut ggplot2: n syntaksin, sitten syntaksin lisääminen vuorovaikutteisuuteen ggivs-juonien luomiseksi seuraa luonnollisesti.

Kommentit

  • Tämä on epätarkka (ehkä se oli tarkka kirjoituksen aikaan). ggvis-ohjelmaa voidaan ehdottomasti käyttää staattisten kaavioiden luomiseen. Se, että se sallii myös vuorovaikutteiset juonet, on ominaisuus, ei rajoitus. Yksi yksinkertainen esimerkki staattisesta juonesta: library('ggvis'); mtcars %>% ggvis(~wt, ~mpg) %>% layer_points(fill = ~factor(cyl))

Vastaa

Haluan laajentaa hieman Dianne Cookin vastausta. Kuten hän sanoi, ggplot2 on tarkoitettu staattisten juonien luomiseen, ggvis on vuorovaikutteisten juonien luomiseen. Tähän liittyy joukko seurauksia:

Tiedostotyyppi ggvis-ulostulo on HTML, joka sisältää CSS- ja javascript-tiedostoja. Ggvis ei luonnollisesti tuota tavallisia kuvatiedostoja. Ggplot2 tuottaa tavallisia kuvia, jotka voivat sitten olla upotettu HTML- tai pdf-tiedostoon, gif-tiedostoon tai sähköpostitse tai mihin tahansa muuhun. ggvis, jos haluat lähettää tiedoston sähköpostitse, avaat hakemiston HTML-tiedostoista, joita voidaan tarkastella selaimessa.

Animaatio Seurauksena on, että jos haluat luoda animaation, voit tehdä kehykset ggplot2: ssa ja yhdistävät ne, mutta ei ole luonnollista tapaa tehdä tätä ggvis: n kanssa. Interaktiivisesti toimiva ggvis animoi ”liven”, mutta nämä ovat erilaisia animaatioita. Jos kehyksessä tapahtuu enemmän kuin ggvis pystyy käsittelemään , et voi kiertää sitä (ainakaan luonnollisella tavalla) luomalla kuvia ja tekemällä elokuvan taustalle. Vastaavasti käyttäjä ei voi ladata elokuvaa tai gif-tiedostoa ggvis: stä toistettavaksi.

Juuri nykyisessä projektissani vaihdoin ggplot2: sta ggvis: ään, koska ggplot2 oli aivan liian hidas interaktiiviseen animaatioon. Mutta pidän myös siitä, että käyttäjä voi leikata asetusten avulla napsauttaa ”mennä” ja ladata täyden nopeuden sujuvan animaatioelokuvan tekemistään. En ole keksinyt, kuinka tehdä tämä käyttämällä ggvis, mutta se olisi kakku käyttäen ggplot2: ta.

Nopeus ggvis on paljon, paljon, paljon nopeampi kuin ggplot2, varsinkin kun tietoja muutetaan. Jokaisella ggplot2-käyrällä on toinen tai muutama viive. ggvis: llä on noin toinen, kun luot ensimmäisen käyrän, sen jälkeen tietojen muuttaminen on saumatonta – ggvis voidaan linkittää ”reaktiivisesti” tietoihin, joten se päivittää itsensä aina, kun tiedot muuttuvat. Ggplot2: n avulla koko juoni piirretään uudelleen.

Tyyli & Ulkonäkö ggplot2 -viivat näyttävät hieman ensi silmäyksellä mukavampi kuin ggvis-juoni. ggplot2-tontit ovat melko tyylikkäitä. ggvis-tontit ovat yksinkertaisempia, mutta ne kasvavat minulle. Ggplot2: lle on myös laajennuksia, kuten xkcd- ja wesanderson-paketit, joissa ggvis-analogia ei ole. Kaikki ggplot2-tontit näyttävät siltä, että ne on sama henkilö (ggplot2: n kirjoittaja) ja jotka väsyvät jonkin ajan kuluttua.

Täydellisyys Voit luoda ggplot2: ssa tonttityyppejä, joita ggvis ei tue, ainakin niin kaukana. Esimerkiksi ggvis-ohjelmassa ei ole ”matto” -piirroselementtiä. Olen nähnyt yhden tai kaksi ggvis-tekniikalla tehtyä choropletia, mutta luonnollista sisäänrakennettua tukea ei vielä ole. Ggplot2: lla on napakoordinaatit (eli ympyräkaaviot) Puuttuu myös ggvis: stä (ja saatavana joko ggplot2: ssa tai ggplot2-laajennuksessa): laatikkopiirrokset; ääriviivat; luonnolliset lämpökartat; luonnolliset korrelaatiokaaviot; pistepiirrokset; viulupiirrokset; verkkokaaviot; dendrogrammit. Tietenkin olen varma jotkut erittäin fiksut ihmiset voivat luoda kaikki nämä ggvis-tiedostoon, mutta en ole niin fiksu.

Merkinnät ggplot2: lla on erittäin mukava, kenties liian vähän käytetty merkintäkehys, ggvis: llä ei.

Osa-alueet & Facets ggplot2 on erittäin mukava , mutta kenties melko rajoitettu ”kasvot” -ominaisuus. Voit myös yhdistää useita ggplot2-kuvaajia ruudukkopaketin avulla. Tällä hetkellä et voi tehdä kumpaakaan ggvis: llä. ggvis-tontteja ei voida yhdistää yhdeksi kuvaksi (koska ne eivät ole kuvia, ne ”elävät” verkkosivut), eikä se tue minkäänlaista viivoitusta tai alakohtelua. Tämän oletetaan olevan valmisteilla.

Visuaalinen joustavuus ggplot2 haluaa, että jokainen juoni näyttää samalta, mikä tarkoittaa, että kirjoittaja haluaa tyyliltään. ei esimerkiksi, jos sinulla on juoni, jossa on useita y-akseleita ggplot2: ssa. ggvis can. ggvis on paljon joustavampi kuin ggplot2. Sen on paljon helpompi tehdä kuten piilottaa legendoja, yhdistää useita legendoja yhdeksi, käyttää eri asteikoita eri saman tontin asiat jne.

Syvä mukautettavuus Jos haluat luoda, sano uusi älykäs mittakaava, sen ei ole liian vaikea tehdä sitä ggplot2: ssa (vaikka se onkin melko sekava). Ei vain näytä olevan tapa tehdä paljon sitä ggvis: ssä. Ehkä se ei ole vielä.

Aikasarja ggplot2 ei halua piirtää aikasarjoja. Se voi , mutta se ei ”halua . Itse asiassa kumpikaan niistä ei halua; molemmat vaativat tietojen syöttämistä data.frame-kehykseen, eivätkä ne voi” käsitellä ” xts tai eläintarhan esineitä. Niillä ei myöskään ole sisäänrakennettuja ominaisuuksia aikasarjan viipaloimiseksi. Mutta ggvis ei taistele yhtä kovasti kuin aikasarjat kuin ggplot2. Tämä johtuu osittain siitä, että sen päivittäminen ggvis-juonessa on niin nopeaa. Oletan, että jos haluat piirtää aikasarjat, joudut voittamaan jommankumman lähetykseen, mutta ggvis suhtautuu siihen paljon vähemmän passiivisesti aggressiivisesti .

Ovatko ne samaa syntaksia? Lajittele … Niiden välillä on paljon yhteistä , ja ajattelemisen oppiminen toisen tyyliin auttaa sopeutumaan toisen tyyliin. Erityisesti molemmat on suunniteltu siten, että kaikki piirtokutsut johdetaan toisiinsa yhdellä rivillä. Ensisijainen etu on se, että se tekee virheenkorjauksesta ja profiloinnista todella vaikeaa ja tekee pohjimmiltaan Rstudion kaltaisten asioiden virheenkorjaus- / profilointiominaisuudet hyödyttömiksi. Muuten ne ”ovat taas syntaktisesti erilaisia. Jotkut asiat, jotka ovat vaikeita ggplot2: ssa, ovat helppoja ggvisissä. Jotkut ggplot2: ssa helposti käytettävät asiat ovat mahdottomia ggvisissä. Ja päinvastoin. (Minulla on hieman mieluummin tapa, jolla ggvis tekee asioita, mikä on mielestäni helpompi ymmärtää.)

Virheet ggvis -palvelussa on vielä melko vähän. Joskus se käyttäytyy aivan omituisesti. Joskus juoni kuitenkin katoaa satunnaisesti syistä, joiden kiertäminen vie tunteja ja joilla ei ole juurikaan järkeä. Kehittäjät myöntävät tämän vapaasti, ggvis ei ole vielä valmis tuotantoon. Jos käsittelet monimutkaisuutta, huomaat että he eivät ole tosissasi.

Pohjarivi: Välitaulukon oppiminen kussakin kestää noin 16 tuntia. Joten realistisesti opit todennäköisesti molemmat.

Kommentit

  • Hyvä vertailu
  • Mikä on nopeampi ggvis tai ristikko tai rgl? (suurille tietojoukoille)
  • +1 upea kirjoitus. Hyväksyn kaiken täällä olevan kokemukseni perusteella.
  • Hei, entä ggvis vs rcharts?
  • TIME-SARJAT: ggplot2 voittaa lopullisesti ggfortify-laajennuksella. Katso tästä erinomainen dokumentaatio: rpubs.com/sinhrks/basics .

Vastaa

Mielestäni library(ggvis) jälkeen ilmestyvä viesti on itsestään selvä:

ggvis-sovellusliittymä kehittyy tällä hetkellä nopeasti. Suosittelemme, että et luota tähän tuotannossa, mutta voit tutkia vapaasti. Jos kohtaat selvän virheen, lähetä vähäinen toistettavissa oleva esimerkki osoitteeseen https://github.com/rstudio/ggvis/issues . Jos sinulla on kysyttävää ja muuta keskustelua, käytä https://groups.google.com/group/ggvis .

Verrattuna ggplot2: een ggvisiltä puuttuu vielä joitain ominaisuuksia ja kiillotusta (ei esimerkiksi tapaa lisätä kaavioon otsikkoa, esimerkiksi akselien otsikot ovat päällekkäisiä valintamerkintöjen kanssa, ja muita on, fasettia ei tueta jne.) toisaalta ggvis-syntakse tuntuu hieman puhtaammalta, ja vuorovaikutteisuus on todella mahtavaa.

Omasta kokemuksestani ggvis on välttämätön, jos rakennat kiiltävää sovellusta. Sitten verkko- ja R-ystävällisen kuvaajan piirtämismoottorin edut ovat huomattavasti suuremmat kuin sillä tällä hetkellä olevat puutteet.

Jos haluat tehdä staattisia kaavioita tietojen etsimiseksi, ggplot2 on kypsä kirjasto, jossa on paljon hienoja ominaisuuksia ja jolla on terve käyttäjäkunta ja paljon resursseja, joista oppia.

Molempien pakettien takana on samanlainen filosofia, joten taitoja voidaan siirtää melko helposti paketeista toiseen.

vastaus

R-yhteisö keksii jatkuvasti uusia (ja usein päällekkäisiä) paketteja useista syistä:

1) Joku haluaa muuttaa jotain tai lisätä jotain, jota ei ole olemassa olevassa paketissa, mutta suuri osa siitä menee päällekkäin (siis monet paketit, jotka regresoivat)

2) Joku kirjoittaa paketti tehtävänä

3) Pakettien kirjoittaminen on hauskaa (jos pidät sellaisesta)

4) He eivät tiedä, että alkuperäinen paketti on olemassa

Kommentit

  • Mitä tulee tiettyyn esimerkkiin ja kohtaan 4: ggvisin ovat kirjoittaneet samat ihmiset kuin ggplot2. Tärkeä asia tässä on, että ggplot2: n käyttö on niin laajalle levinnyttä, että muutosten toteuttaminen on mahdotonta rikkomatta paljon olemassa olevia koodeja / riippuvaisia paketteja.
  • Onko tällainen olemassa olevien pakettien keksiminen tarkoitettu tapahtuisi aivan kuten talouden taantuma kapitalismiyhteiskunnissa?
  • @Peter: R: n ulkopuolisena henkilönä tämä näyttää mielestäni oikeudenmukaiselta kommentilta, mutta (epätavallisimmin) et ’ älä vastaa kysymykseen!
  • @NickCox Vastasin yhteen kysymyksessä olevista kysymyksistä. :-).
  • @Peter Erittäin reilu asia. Ristiviittaus stats.stackexchange.com/questions/58966/… on mielestäni asiaankuuluva.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *