Вопрос о графиках Tidyverse и ggplot2 - PullRequest
0 голосов
/ 09 января 2019

Я использую данные опроса, и я хотел бы составить график категорий активности по времени дня.

Моя матрица AggregatedActivity состоит из переменных, которые определяют действия (такие как sleepAct, eatinAct и т. Д.).

Below dput(head(AggregatedActivities, 20))

structure(c(0, 2, 1, 1, 4, 3, 5, 3, 1, 1, 2, 7, 8, 9, 17, 15, 
14, 20, 25, 21, 157, 155, 155, 153, 150, 150, 147, 146, 145, 
146, 146, 142, 134, 133, 124, 113, 113, 104, 85, 76, 0, 0, 0, 
0, 0, 1, 1, 0, 1, 1, 1, 1, 2, 1, 1, 9, 6, 6, 13, 13, 5, 5, 5, 
4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 1, 2, 0, 0, 0, 3, 3, 3, 4, 7, 5, 7, 3, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 1, 1, 1, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 2, 1, 1, 
1, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, 3, 4, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 1, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
1, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 
1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 
0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 4, 5, 6, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 2, 2, 2, 2, 
2, 4, 6, 6, 5, 3, 4, 4, 4, 4, 5, 8, 11, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 2, 4, 
3, 1, 2, 1, 0, 1, 0, 3, 3, 3, 1, 5), .Dim = c(20L, 52L), .Dimnames = list(
    c("04:00", "04:10", "04:20", "04:30", "04:40", "04:50", "05:00", 
    "05:10", "05:20", "05:30", "05:40", "05:50", "06:00", "06:10", 
    "06:20", "06:30", "06:40", "06:50", "07:00", "07:10"), c("personalcareAct", 
    "sleepAct", "eatingAct", "workingAct", "studyAct", "tidyAct", 
    "foodprepAct", "dishesAct", "foodmanagementAct", "householdtidyAct", 
    "hobbyAct", "ironingAct", "laundryAct", "hobby2Act", "gardeningAct", 
    "petsAct", "diyAct", "hobby1Act", "vehiclemaintenanceAct", 
    "shoppingAct", "servicesAct", "tidyNotUsingInternetAct", 
    "InternetAct", "childcareAct", "adultcareAct", "organisationalworkAct", 
    "helpothersAct", "socialAct", "culturalAct", "libraryAct", 
    "sportseventsAct", "leisureAct", "sportsAct", "computerAct", 
    "unspecifiedartsAct", "correspondanceAct", "unspecifedhobbyAct", 
    "computingAct", "OnlinecommunicationAct", "computingunspecifiedAct", 
    "skypeorvideocallAct", "OtherunspecifiedcomputingAct", "gamesAct", 
    "computergamesAct", "gamblingAct", "unspecifedmassmediaAct", 
    "readingAct", "TVAct", "RadioAct", "travelAct", "waitingAct", 
    "unknownAct")))

Что мне нужно сделать, так это построить столбцы (которые описывают действия) матрицы в зависимости от времени (с 4 утра до 4 утра).

Используя приведенный выше код, я сгенерировал следующий график:

AggregatedActivities<-as.matrix(cbind(personalcareAct, sleepAct, eatingAct, workingAct,
                                      studyAct, tidyAct, foodprepAct, dishesAct, foodmanagementAct,
                                      householdtidyAct, hobbyAct, ironingAct, laundryAct, hobby2Act,
                                      gardeningAct, petsAct, diyAct, hobby1Act, vehiclemaintenanceAct,
                                      shoppingAct, servicesAct, tidyNotUsingInternetAct,
                                      InternetAct, childcareAct, adultcareAct, organisationalworkAct,
                                      helpothersAct, socialAct, culturalAct, libraryAct,
                                      sportseventsAct, leisureAct, sportsAct, computerAct, 
                                      unspecifiedartsAct, correspondanceAct, unspecifedhobbyAct,
                                      computingAct, OnlinecommunicationAct, computingunspecifiedAct,
                                      skypeorvideocallAct, OtherunspecifiedcomputingAct, gamesAct,
                                      computergamesAct, gamblingAct, unspecifedmassmediaAct,
                                      readingAct, TVAct, RadioAct, travelAct, waitingAct, unknownAct))


rownames(AggregatedActivities) <-  c("04:00", "04:10","04:20", "04:30", "04:40", "04:50", "05:00", "05:10", "05:20", "05:30", "05:40", "05:50",
                         "06:00", "06:10", "06:20", "06:30", "06:40", "06:50", 
                         "07:00", "07:10", "07:20", "07:30", "07:40", "07:50",
                         "08:00", "08:10", "08:20", "08:30", "08:40", "08:50",
                         "09:00", "09:10", "09:20", "09:30", "09:40", "09:50", 
                         "10:00", "10:10", "10:20", "10:30", "10:40", "10:50", 
                         "11:00", "11:10", "11:20", "11:30", "11:40", "11:50", 
                         "12:00", "12:10", "12:20", "12:30", "12:40", "12:50", 
                         "13:00", "13:10", "13:20", "13:30", "13:40", "13:50",
                         "14:00", "14:10", "14:20", "14:30", "14:40", "14:50", 
                         "15:00", "15:10", "15:20", "15:30", "15:40", "15:50", 
                         "16:00", "16:10", "16:20", "16:30", "16:40", "16:50", 
                         "17:00", "17:10", "17:20", "17:30", "17:40", "17:50", 
                         "18:00", "18:10", "18:20", "18:30", "18:40", "18:50",
                         "19:00", "19:10", "19:20", "19:30", "19:40", "19:50", 
                         "20:00", "20:10", "20:20", "20:30", "20:40", "20:50", 
                         "21:00", "21:10", "21:20", "21:30", "21:40", "21:50", 
                         "22:00", "22:10", "22:20", "22:30", "22:40", "22:50",  
                         "23:00", "23:10", "23:20", "23:30", "23:40", "23:50",
                         "00:00", "00:10", "00:20", "00:30", "00:40", "00:50", 
                         "01:00", "01:10", "01:20", "01:30", "01:40", "01:50",
                         "02:00", "02:10", "02:20", "02:30", "02:40", "02:50", 
                         "03:00", "03:10", "03:20", "03:30" ,"03:40", "03:50")




colnames(AggregatedActivities) <-  c("personalcareAct", "sleepAct", "eatingAct", "workingAct",
                                     "studyAct", "tidyAct", "foodprepAct", "dishesAct", "foodmanagementAct",
                                     "householdtidyAct", "hobbyAct", "ironingAct", "laundryAct", "hobby2Act",
                                     "gardeningAct", "petsAct", "diyAct", "hobby1Act", "vehiclemaintenanceAct",
                                     "shoppingAct", "servicesAct", "tidyNotUsingInternetAct",
                                     "InternetAct", "childcareAct", "adultcareAct", "organisationalworkAct",
                                     "helpothersAct", "socialAct", "culturalAct", "libraryAct",
                                     "sportseventsAct", "leisureAct", "sportsAct", "computerAct", 
                                     "unspecifiedartsAct", "correspondanceAct", "unspecifedhobbyAct",
                                     "computingAct", "OnlinecommunicationAct", "computingunspecifiedAct",
                                     "skypeorvideocallAct", "OtherunspecifiedcomputingAct", "gamesAct",
                                     "computergamesAct", "gamblingAct", "unspecifedmassmediaAct",
                                     "readingAct", "TVAct", "RadioAct", "travelAct", "waitingAct", "unknownAct")


windows()

mypalette = rainbow(ncol(AggregatedActivities))
matplot(y = AggregatedActivities, type = 'l',xlab="Time", ylab = "Proportion of activites", main="(Monday) Individual data: Activities", lty = 1, pos=0, axes=FALSE, xlim=c(1,144), ylim=c(0,100), col = mypalette)

axis(1, at=1:144, labels=rownames(AggregatedActivities), by=10, pos=-1)
axis(2, at=c(0,100), labels=c("",""), pos=1)
axis(2, at=seq(0, 100, by=50),lwd.ticks=1, las=1, pos=1, cex=0.3)

rect(xleft=96,xright =73,ybottom=range(AggregatedActivities)[1],ytop=range(AggregatedActivities)[2], density=10, col = "blue")

Однако этот график трудно читаемый, легенда отсутствует и ось не совпадает. Не могли бы вы помочь мне, пожалуйста.

В конце дня, используя предложения Дэвида и Гильермо, я создал следующие графики:

а.) Решение Дэвида, см. Предложение выше

enter image description here

б.) Решение Гильермо, см. Предложение выше

enter image description here

2 графика не совпадают, и я не знаю почему? Также, как я могу удалить месяц и год из сюжета Дэвида?

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Tidyverse будет выглядеть так:

library(tidyverse)

struct <- structure(c(0, 2, 1, 1, 4, 3, 5, 3, 1, 1, 2, 7, 8, 9, 17, 15, 
            14, 20, 25, 21, 157, 155, 155, 153, 150, 150, 147, 146, 145, 
            146, 146, 142, 134, 133, 124, 113, 113, 104, 85, 76, 0, 0, 0, 
            0, 0, 1, 1, 0, 1, 1, 1, 1, 2, 1, 1, 9, 6, 6, 13, 13, 5, 5, 5, 
            4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 6, 6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 1, 2, 0, 0, 0, 3, 3, 3, 4, 7, 5, 7, 3, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 1, 1, 1, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 2, 1, 1, 
            1, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, 3, 4, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 1, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
            1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 
            1, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 
            1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 
            0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 4, 5, 6, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 2, 2, 2, 2, 
            2, 4, 6, 6, 5, 3, 4, 4, 4, 4, 5, 8, 11, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 2, 4, 
            3, 1, 2, 1, 0, 1, 0, 3, 3, 3, 1, 5), .Dim = c(20L, 52L), .Dimnames = list(
              c("04:00", "04:10", "04:20", "04:30", "04:40", "04:50", "05:00", 
                "05:10", "05:20", "05:30", "05:40", "05:50", "06:00", "06:10", 
                "06:20", "06:30", "06:40", "06:50", "07:00", "07:10"), c("personalcareAct", 
                                                                         "sleepAct", "eatingAct", "workingAct", "studyAct", "tidyAct", 
                                                                         "foodprepAct", "dishesAct", "foodmanagementAct", "householdtidyAct", 
                                                                         "hobbyAct", "ironingAct", "laundryAct", "hobby2Act", "gardeningAct", 
                                                                         "petsAct", "diyAct", "hobby1Act", "vehiclemaintenanceAct", 
                                                                         "shoppingAct", "servicesAct", "tidyNotUsingInternetAct", 
                                                                         "InternetAct", "childcareAct", "adultcareAct", "organisationalworkAct", 
                                                                         "helpothersAct", "socialAct", "culturalAct", "libraryAct", 
                                                                         "sportseventsAct", "leisureAct", "sportsAct", "computerAct", 
                                                                         "unspecifiedartsAct", "correspondanceAct", "unspecifedhobbyAct", 
                                                                         "computingAct", "OnlinecommunicationAct", "computingunspecifiedAct", 
                                                                         "skypeorvideocallAct", "OtherunspecifiedcomputingAct", "gamesAct", 
                                                                         "computergamesAct", "gamblingAct", "unspecifedmassmediaAct", 
                                                                         "readingAct", "TVAct", "RadioAct", "travelAct", "waitingAct", 
                                                                         "unknownAct")))


df <- as_data_frame(struct) %>% 
  # add the time-of-day as a variable
  mutate(timeofday = rownames(struct)) %>% 
  # format the timeofday as a posix (date)
  mutate(timeofday = as.POSIXct(paste0("2000-01-01 ", timeofday, ":00")))

df_long <- df %>% 
  # gather the data into a long format
  gather("activity", "value", -timeofday) %>% 
  # group by timeofday and calculate the relative value
  group_by(timeofday) %>% 
  mutate(rel_value = value / sum(value))

# plot the values as an area-plot
ggplot(df_long, aes(x = timeofday, y = rel_value, fill = activity)) +
  geom_area() +
  scale_fill_viridis_d(guide = FALSE)

Создано в 2019-01-26 пакетом Представить (v0.2.1)

0 голосов
/ 09 января 2019

Как насчет использования ggplot2 с расплавленным фреймом данных:

library(ggplot2)
melted_AggregatedActivities <- melt(AggregatedActivities)
ggplot(melted_AggregatedActivities) + geom_col(aes(x = Var1,y = value,fill = Var2),position = "fill")  + theme(legend.position="none") 

Я получаю следующий результат:

enter image description here

Я удалил легенду (theme(legend.position="none")), потому что она была слишком большой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...