Here is a suggestion
library(tidyverse)
library(ggrepel)
mydata <- structure(list(Id = c(
1503960366, 1503960366, 1503960366, 1503960366,
1503960366, 1503960366, 1503960366, 1503960366, 1503960366, 1503960366,
1503960366, 1503960366, 1503960366, 1503960366, 1503960366, 1503960366,
1503960366, 1503960366, 1503960366, 1503960366, 1503960366, 1503960366,
1503960366, 1503960366, 1644430081, 1644430081, 1644430081, 1927972279,
1927972279, 1927972279, 1927972279, 2026352035, 2026352035, 2026352035,
2026352035, 2026352035, 2026352035, 2026352035, 2026352035, 2026352035,
2026352035, 2026352035, 2026352035, 2026352035, 2026352035, 2026352035,
2026352035, 2026352035, 2026352035, 2026352035, 2026352035, 2026352035,
2026352035, 2026352035, 2026352035, 2026352035, 2026352035, 2026352035,
2026352035, 2320127002, 2347167796, 2347167796, 2347167796, 2347167796,
2347167796, 2347167796, 2347167796, 2347167796, 2347167796, 2347167796,
2347167796, 2347167796, 2347167796, 2347167796, 2347167796, 3977333714,
3977333714, 3977333714, 3977333714, 3977333714, 3977333714, 3977333714,
3977333714, 3977333714, 3977333714, 3977333714, 3977333714, 3977333714,
3977333714, 3977333714, 3977333714, 3977333714, 3977333714, 3977333714,
3977333714, 3977333714, 3977333714, 3977333714, 3977333714, 3977333714
), SleepDay = structure(c(
3L, 4L, 6L, 7L, 3L, 4L, 5L, 7L, 1L,
2L, 3L, 5L, 6L, 7L, 1L, 2L, 3L, 5L, 6L, 7L, 1L, 2L, 3L, 4L, 6L,
7L, 1L, 4L, 6L, 3L, 5L, 3L, 4L, 5L, 6L, 7L, 1L, 3L, 4L, 5L, 6L,
7L, 1L, 2L, 4L, 5L, 6L, 7L, 1L, 2L, 4L, 5L, 6L, 7L, 1L, 2L, 3L,
4L, 5L, 7L, 4L, 5L, 6L, 1L, 2L, 3L, 5L, 6L, 7L, 1L, 2L, 3L, 4L,
5L, 6L, 3L, 4L, 5L, 6L, 7L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 1L, 2L,
3L, 4L, 5L, 6L, 7L, 1L, 2L, 3L, 4L, 5L, 6L
), levels = c(
"Sun",
"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
), class = c(
"ordered",
"factor"
)), TotalSleepRecords = c(
1L, 2L, 1L, 2L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L
), TotalMinutesAsleep = c(
327L,
384L, 412L, 340L, 304L, 360L, 325L, 361L, 430L, 277L, 245L, 366L,
341L, 404L, 369L, 277L, 273L, 247L, 334L, 331L, 594L, 338L, 383L,
285L, 119L, 124L, 137L, 398L, 475L, 296L, 166L, 503L, 531L, 545L,
523L, 524L, 437L, 498L, 461L, 477L, 520L, 522L, 555L, 506L, 508L,
513L, 490L, 573L, 527L, 511L, 538L, 468L, 524L, 511L, 541L, 531L,
357L, 523L, 456L, 61L, 467L, 445L, 452L, 556L, 500L, 465L, 460L,
405L, 374L, 442L, 433L, 436L, 448L, 408L, 411L, 274L, 295L, 291L,
424L, 283L, 381L, 412L, 219L, 152L, 332L, 355L, 235L, 310L, 262L,
250L, 349L, 261L, 333L, 237L, 383L, 230L, 292L, 213L, 318L, 323L
), TotalTimeInBed = c(
346L, 407L, 442L, 367L, 320L, 377L, 364L,
384L, 449L, 323L, 274L, 393L, 354L, 425L, 396L, 309L, 296L, 264L,
367L, 349L, 611L, 342L, 403L, 306L, 127L, 142L, 154L, 422L, 499L,
315L, 178L, 546L, 565L, 568L, 573L, 567L, 498L, 540L, 510L, 514L,
545L, 554L, 591L, 531L, 545L, 545L, 510L, 607L, 546L, 543L, 560L,
485L, 548L, 521L, 568L, 556L, 380L, 553L, 485L, 69L, 531L, 489L,
504L, 602L, 557L, 514L, 484L, 461L, 386L, 459L, 471L, 490L, 499L,
450L, 473L, 469L, 456L, 397L, 556L, 510L, 566L, 522L, 395L, 305L,
512L, 476L, 372L, 526L, 467L, 371L, 540L, 423L, 478L, 382L, 626L,
384L, 500L, 336L, 480L, 512L
), SleepPatterns = structure(c(
1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L,
3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 2L, 3L, 2L,
2L, 2L, 2L, 2L, 2L, 3L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 3L, 2L,
2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L
), levels = c("Under sleep", "Normal sleep", "Over sleep"), class = "factor"), TotalSittingTime = c(
19L, 23L, 30L, 27L,
16L, 17L, 39L, 23L, 19L, 46L, 29L, 27L, 13L, 21L, 27L, 32L, 23L,
17L, 33L, 18L, 17L, 4L, 20L, 21L, 8L, 18L, 17L, 24L, 24L, 19L,
12L, 43L, 34L, 23L, 50L, 43L, 61L, 42L, 49L, 37L, 25L, 32L, 36L,
25L, 37L, 32L, 20L, 34L, 19L, 32L, 22L, 17L, 24L, 10L, 27L, 25L,
23L, 30L, 29L, 8L, 64L, 44L, 52L, 46L, 57L, 49L, 24L, 56L, 12L,
17L, 38L, 54L, 51L, 42L, 62L, 195L, 161L, 106L, 132L, 227L, 185L,
110L, 176L, 153L, 180L, 121L, 137L, 216L, 205L, 121L, 191L, 162L,
145L, 145L, 243L, 154L, 208L, 123L, 162L, 189L
)), row.names = c(
NA,
100L
), class = "data.frame")
mydata_smry <- mydata |>
group_by(SleepDay, SleepPatterns) |>
summarise(n = n())
ggplot(mydata_smry, aes(x = SleepDay, fill = SleepPatterns)) +
geom_col(aes(y=n),
position = position_dodge(width = 1)) +
theme(panel.background = element_blank()) +
theme(plot.background = element_blank()) +
theme(
plot.title.position = "plot",
plot.title = element_text(hjust = 0.5)
) +
theme(axis.text.x = element_text(vjust = 10)) +
ggtitle("Number of People by Type of Sleep") +
ylab("Number of People") +
geom_text(
aes(
label = n,
y = n + .3
),
position = position_dodge(width = 1)
)