WebHU - Programozási kérdések és válaszok

ggplot a facet_wrap használatával R-ben?

A ggplot face_wrap funkcióját szeretném használni a következő példaadatok megrajzolásához. A plot nem tűnik megfelelőnek. A line-nek sima kapcsolatnak kell lennie extra szóköz nélkül mindkét facets-ben (azaz a Facet A 10-15-ig üres, míg a Facet B-ben 0-5 szóköz van). Az x-tengely hónapjai is furcsaak.

library(tidyverse)
library(lubridate)


set.seed(555)

D <- data.frame(Date = seq(as.Date("2001-01-01"), to= as.Date("2003-12-31"), by="day"),
                      A = runif(1095, 0,10), Z = runif(1095, 5,15))
D %>% pivot_longer(-Date, names_to = "Variable", values_to = "Value") %>% 
  mutate(Year = year(Date), Month = month(Date)) %>% 
  ggplot(aes(x = Month, y = Value, col = as.factor(Year)))+
  geom_line()+facet_wrap(~Variable, nrow = 2)

ide írja be a kép leírását

Kívánt kimenet: Az alábbihoz hasonló cselekményt keresek, ahol a vonalak zökkenőmentesen kapcsolódnak hónapról hónapra. ide írja be a kép leírását


  • Sok adatpont van minden hónap soron, mert az előző adatkeretben nincsenek havonta összesítve. 17.07.2020

Válaszok:


1

Ha az év napját szeretné használni x-pozícióként, és továbbra is érvényes dátumtengelyt szeretne kapni, törölje a dátum évszámát:

library(tidyverse)
library(lubridate)
#> 
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#> 
#>     date


set.seed(555)

D <- data.frame(Date = seq(as.Date("2001-01-01"), to= as.Date("2003-12-31"), by="day"),
                A = runif(1095, 0,10), Z = runif(1095, 5,15))
D %>% pivot_longer(-Date, names_to = "Variable", values_to = "Value") %>% 
  mutate(Year = year(Date), Month = month(Date),
         Date = {year(Date) <- 2000; Date}) %>%
  ggplot(aes(x = Date, y = Value, col = as.factor(Year)))+
  geom_line()+facet_wrap(~Variable, nrow = 2) +
  scale_x_date(date_breaks = "1 month", 
               date_labels = "%b")

Létrehozva: 2020. július 18-án a reprex csomag (v0.3.0)

17.07.2020
  • Köszönöm - ez jól néz ki. Elég kevés hely van minden egyes „felület” panelen. Például az „A oldal” 10-től 15-ig üres helyet tartalmaz. 18.07.2020
  • A scales = "free" értéket a facet_wrap() függvényben állíthatja be. 18.07.2020

  • 2

    Ezt kipróbálhatod:

    D %>% pivot_longer(-Date, names_to = "Variable", values_to = "Value") %>% 
      mutate(Year = year(Date), Month = month(Date)) %>% 
      ggplot(aes(x = factor(Month), y = Value, col = as.factor(Year),group=factor(Year)))+
      geom_line()+facet_wrap(~Variable, nrow = 2,scales='free')
    

    ide írja be a kép leírását

    17.07.2020
  • köszönöm@Duck, a vonalak még mindig elég egyenesek a hónapról hónapra. Most töltök fel egy kézzel rajzolt figure-et, amelyet szeretnék megszerezni. 17.07.2020
  • @Hydro szerintem az adataidtól függ, hogy a rnorm() értékek az eredeti változóid 17.07.2020
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..