Mám se při vykreslování s R naučit ggplot2 nebo ggvis? Nemusím se nutně učit obojí, pokud je jeden z nich v jakémkoli ohledu nadřazený. Proč komunita R stále vytváří nové balíčky s překrývajícími se funkcemi? úvodní blogový příspěvek nezmiňuje ani slovo, proč je ggvis vytvořen vzhledem k tomu, že již existuje propracovaný balíček vykreslování ggplot2.

Komentáře

  • ggvis je zcela odlišná konvice ryb Skutečná alternativa je mezi ggplot a mřížkou .
  • Myslím, že odpověď závisí na tom, co ' re after. Pokud ' hledáte statické pokročilé grafy, ' chcete se naučit ggplot2. Pro webovou vizualizaci zvažte ggvis.

odpověď

Začněte s ggplot2. Vytváří statické grafy.

Kromě statických grafů lze pro vytváření interaktivních grafů použít také ggvis. Jakmile y Naučili jste se syntaxi ggplot2, pak syntaxe pro přidání interaktivity k vytvoření grafů ggivs bude přirozeně následovat.

Komentáře

  • To je nepřesné (možná v době psaní to bylo přesné). ggvis lze určitě použít k vytváření statických grafů. Skutečnost, že také umožňuje interaktivní vykreslování, je vlastnost, nikoli omezení. Jeden jednoduchý příklad statického grafu: library('ggvis'); mtcars %>% ggvis(~wt, ~mpg) %>% layer_points(fill = ~factor(cyl))

Odpověď

Chci se trochu rozšířit o odpověď Dianne Cookové. Jak řekla, ggplot2 je pro vytváření statických grafů, ggvis je pro interaktivní grafy. To má spoustu důsledků:

Typ souboru výstupem ggvis je HTML včetně souborů CSS a javascript. Ggvis přirozeně nevydává běžné soubory obrázků. Ggplot2 vydává běžné obrázky, které pak mohou být vložen do HTML nebo PDF nebo GIF nebo e-mailem, nebo cokoli jiného. ggvis, pokud chcete soubor poslat e-mailem, komprimujete adresář souborů HTML, které se mají zobrazit v prohlížeči.

Animace Důsledkem toho je, že pokud chcete vytvořit animaci, můžete vytvořit snímky v ggplot2 a sloučit je, ale neexistuje žádný přirozený způsob, jak to udělat s ggvis. Interaktivní hraní ggvis bude animovat „live“, ale jedná se o různé druhy animace. Pokud se toho na snímek děje více, než může ggvis zpracovat , toto „nemůžete obejít (alespoň přirozeným způsobem) generováním obrázků a vytvořením filmu na pozadí. Podobně si uživatel nemůže stáhnout film nebo gif soubor z ggvisu k opětovnému přehrání.“

Právě teď v mém aktuálním projektu jsem přešel z ggplot2 na ggvis, protože ggplot2 byl na interaktivní animaci příliš pomalý. Ale také bych ráda uživatele, když si pohrál s nastavením, aby mohl kliknout na „jít“ a stáhnout si film s plnou rychlostí a plynulou animací toho, co udělal. Nepřišel jsem na to, jak to udělat pomocí ggvis, ale byl by to dort s použitím ggplot2.

Rychlost ggvis je mnohem, mnohem, mnohem rychlejší než ggplot2, zejména při změně dat. Každý graf ggplot2 má druhé nebo několik zpoždění. ggvis má asi sekundu, když poprvé vytvoříte graf, potom je změna dat bezproblémová – ggvis může být „reaktivně“ propojen s daty, takže se aktualizuje, kdykoli se data změní. S ggplot2 bude celý graf překreslen.

Styl & Vzhled grafy ggplot2 vypadají trochu na první pohled hezčí než zápletky ggvis. grafy ggplot2 jsou docela elegantní. grafy ggvis jsou jednodušší, ale rostou na mě. Existují také rozšíření pro ggplot2, jako jsou balíčky xkcd a wesanderson, kde pro ggvis neexistuje analog. Všechny grafy ggplot2 vypadají, jako by byly vytvořeny stejnou osobou (autorem ggplot2), a to se po chvíli unaví.

Úplnost V ggplot2 můžete vytvořit typy plotů, které ggvis alespoň nepodporuje zatím. Například v ggvisu není žádný prvek grafu „koberec“. Viděl jsem jeden nebo dva choroplety, které byly vytvořeny pomocí ggvis, ale zatím neexistuje žádná přirozená vestavěná podpora. Ggplot2 má polární souřadnice (tj. Výsečové grafy) , ggvis ne. Také chybí v ggvis (a je k dispozici buď v ggplot2 nebo v rozšíření ggplot2): boxplots; obrysové grafy; přírodní teplotní mapy; přirozené korelační grafy; dotplots; houslové grafy; síťové grafy; dendrogramy. Samozřejmě jsem si jistý někteří velmi chytří lidé mohou vytvořit vše v ggvisu, ale já nejsem tak chytrý.

Anotace ggplot2 má velmi pěkný, možná nedostatečně využitý anotační rámec, ggvis ne.

Subploty & Fazety ggplot2 má velmi pěkný , ale možná spíše omezená funkce „fazetování“. Pomocí mřížkového balíčku můžete také kombinovat více grafů ggplot2. Od této chvíle nemůžete dělat ani s ggvis. Grafy ggvis nelze kombinovat do jediného obrázku (protože to nejsou obrázky, jsou to „živé“ webové stránky) a nepodporuje žádný druh fazetování nebo subplottingu. Předpokládá se, že to bude v plánu.

Vizuální flexibilita ggplot2 chce, aby každá zápletka vypadala stejně, což znamená, že autor preferuje stylisticky. v žádném případě například nemáte v ggplot2 graf s více osami y. ggvis může. ggvis je mnohem flexibilnější než ggplot2. Je mnohem snazší dělat věci, jako je skrýt legendy, kombinovat více legend do jedné, používat různé stupnice pro různé věci na stejném pozemku atd.

Hluboká přizpůsobitelnost Pokud chcete vytvořit, řekněme nová chytrá stupnice, není to příliš těžké to udělat v ggplot2 (i když je to docela matoucí). Jen se nezdá, že by existoval způsob, jak toho hodně udělat v ggvis. Možná to ještě není.

Časové řady ggplot2 nerad vykresluje časové řady. Může , ale „to nechce . Vlastně ani jeden z nich nechce; oba trvají na tom, aby byla data přiváděna do datového rámce, a nemohou xts nebo zoo objekty. Ani oni nemají vestavěné funkce pro krájení časové řady. Ale ggvis nebojuje proti časové řadě tak tvrdě jako ggplot2. To je částečně proto, že je tak rychlé aktualizovat data v grafu ggvis, předpokládám. Pokud chcete vykreslit timeseries, budete muset porazit buď podání, ale ggvis je v tom mnohem méně pasivně agresivní .

Jsou to stejná syntaxe? Něco … Mezi nimi je spousta společného a naučit se přemýšlet ve stylu jednoho pomůže přizpůsobit se stylu druhého. Zejména jsou obě navržena tak, aby všechna vykreslovací volání byla navzájem propojena na jednom řádku Primární výhodou je to, že ladění a profilování je opravdu těžké a v zásadě činí funkce ladění / profilování ve věcech, jako je Rstudio, zbytečné. Kromě toho jsou syntakticky zcela odlišné. Některé věci, které jsou v ggplot2 těžké, jsou v ggvis snadné. Některé věci, které jsou v ggplot2 snadné, jsou v ggvisu nemožné. A naopak. (Mám trochu přednost ve způsobu, jakým ggvis dělá věci, což mi připadá snazší pochopit.)

Chyby ggvis jich má stále dost. Někdy se chová divně. Někdy však spiknutí náhodně zmizí z důvodů, které zabere několik hodin, než se obejdou, a dávají velmi malý smysl. Vývojáři to přiznávají svobodně, ggvis ještě není připraven na produkci. Pokud se potýkáte s jakoukoli složitostí, zjistíte zjistíte, že si nedělá legraci.

Sečteno a podtrženo: Naučit se průběžné vykreslování v každém z nich trvá přibližně 16 hodin. Takže realisticky se pravděpodobně naučíte obojí.

Komentáře

  • Skvělé srovnání
  • Co je rychlejší ggvis nebo mřížka nebo rgl? (pro velké datové sady)
  • +1 fantastické zápisy. Souhlasím se vším tady na základě mých dosavadních zkušeností.
  • Dobrý den, co ggvis vs rcharts?
  • ČASOVÁ SÉRIE: ggplot2 definitivně vyhraje s expanzí ggfortify. Přečtěte si o tom tuto vynikající dokumentaci: rpubs.com/sinhrks/basics .

Odpověď

Myslím, že zpráva po library(ggvis) je samozřejmá:

Ggvis API se v současné době rychle vyvíjí. Důrazně doporučujeme, abyste se na to nespoléhali při produkci, ale klidně prozkoumejte. Pokud narazíte na jasnou chybu, odešlete minimální reprodukovatelný příklad na https://github.com/rstudio/ggvis/issues . V případě dotazů a dalších diskusí použijte https://groups.google.com/group/ggvis .

Ve srovnání s ggplot2 ggvis stále nemá některé funkce a lesk (žádný způsob, jak přidat název do grafu, například názvy os se překrývají s popisky značek a existuje jich více, fazetování není podporováno atd.) Na na druhou stranu se syntaxe ggvis cítí trochu čistší a interaktivita je opravdu úžasná.

Z mé vlastní zkušenosti je ggvis nutností, pokud vytváříte lesklou aplikaci. Pak výhody plynoucí z toho, že webový graf a grafický modul vhodný pro grafy R, převážně převáží všechny nedostatky, které aktuálně má.

Pokud chcete dělat statické grafy pro průzkum dat, pak je ggplot2 vyspělou knihovnou se spoustou skvělých funkcí a se zdravou komunitou uživatelů a spoustou zdrojů, z nichž se můžete učit.

Filozofie obou balíčků je podobná, takže dovednosti lze snadno přenášet z jednoho balíčku do druhého.

Odpověď

Komunita R neustále přichází s novými (a často se překrývajícími) balíčky z různých důvodů:

1) Někdo chce něco změnit nebo přidat něco, co není k dispozici v existujícím balíčku, ale velká část se překrývá (proto mnoho balíčků, které regresují)

2) Někdo napíše balíček jako úkol

3) Psaní balíčků je zábavné (pokud se vám takové věci líbí)

4) Neví, že původní balíček existuje

Komentáře

  • Pokud jde o konkrétní příklad a váš bod 4: ggvis je autorem stejných lidí jako ggplot2. Důležitým bodem je, že použití ggplot2 je tak rozšířené, že je nemožné implementovat změny, aniž by došlo k rozbití mnoha existujících balíčků závislých na kódu.
  • Je tento druh znovuobjevení již existujícího balíčku určen stane se to stejně jako ekonomická recese ve společnostech kapitalismu?
  • @Peter: Jako outsidera R mi to připadá jako férový komentář, ale (neobvykle) ' Neodpovídám na otázku!
  • @NickCox Odpověděl jsem na jednu z otázek, které jsou v otázce obsaženy. :-).
  • @Peter Velmi spravedlivý bod. Křížový odkaz na stats.stackexchange.com/questions/58966/… je proto podle mého názoru relevantní.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *