0

This is small example of my data set. This set contains weekly data about 52 weeks. You can see data with code below:

# CODE
     #Data
library(tidyverse)
library(plotly)
      ARTIFICIALDATA<-dput(structure(list(week = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
        13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 
        29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 
        45, 46, 47, 48, 49, 50, 51, 52), `2019 Series_1` = c(534.771929824561, 
        350.385964912281, 644.736842105263, 366.561403508772, 455.649122807018, 
        533.614035087719, 829.964912280702, 466.035087719298, 304.421052631579, 
        549.473684210526, 649.719298245614, 537.964912280702, 484.982456140351, 
        785.929824561404, 576.736842105263, 685.508771929824, 514.842105263158, 
        464.491228070175, 608.245614035088, 756.701754385965, 431.859649122807, 
        524.315789473684, 739.40350877193, 604.736842105263, 669.684210526316, 
        570.491228070175, 641.649122807018, 649.298245614035, 664.210526315789, 
        530.385964912281, 754.315789473684, 646.80701754386, 764.070175438596, 
        421.333333333333, 470.842105263158, 774.245614035088, 752.842105263158, 
        575.368421052632, 538.315789473684, 735.578947368421, 522, 862.561403508772, 
        496.526315789474, 710.631578947368, 584.456140350877, 843.19298245614, 
        563.473684210526, 568.456140350877, 625.368421052632, 768.912280701754, 
        679.824561403509, 642.526315789474), `2020 Series_1` = c(294.350877192983, 
        239.824561403509, 709.614035087719, 569.824561403509, 489.438596491228, 
        561.964912280702, 808.456140350877, 545.157894736842, 589.649122807018, 
        500.877192982456, 584.421052631579, 524.771929824561, 367.438596491228, 
        275.228070175439, 166.736842105263, 58.2456140350878, NA, NA, 
        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
        NA, NA)), row.names = c(NA, -52L), class = c("tbl_df", "tbl", 
        "data.frame")))
colnames(ARTIFICIALDATA) <- c('week', 'series1', 'series2')

So the next step is to plot this data with package. I want to have a plot like the example below. Because this is weekly data, first series1 have 52 observations while series2 has 16 observation (series1 is mean data for 2019 and series2 data for 2020). So for that reason, the comparison must be only on 16 observation (all observations which don't have NA) like the example below:

enter image description here

So can anybody help how to plot this graph with ?

1 Answer 1

2

Try this:

colnames(ARTIFICIALDATA) <- c("week", "series1", "series2")

ARTIFICIALDATA %>%
  # Drop rows with NA 
  drop_na() %>% 
  # Convert to long format
  pivot_longer(-week, names_to = "series") %>%
  # Set the labels for the plot. If you want other lables simply adjust
  mutate(label = case_when(
      series == "series1" ~ "2019 Series_1",
      series == "series2" ~ "2020 Series_1")) %>%  
  # Compute sum by sereis
  group_by(label) %>%
  summarise(sum = sum(value, na.rm = TRUE)) %>% 
  ungroup() %>%
  # Plot
  plot_ly(x = ~label, y = ~sum) %>% 
  add_bars() %>%
  # Remove title for xaxis. But can you can label it as you like
  layout(xaxis = list(title = ""))

enter image description here

Sign up to request clarification or add additional context in comments.

4 Comments

But name must be included. Please check if you can.Thank you in advance
What you mean by that? The names are included in the plot. Do you want "series1" and "series2" as names?
I mean about colnames(ARTIFICIALDATA) <- c("week", "series1", "series2") if is possible.
Okay. You probably have a good reason for insisting on the colnames. I changed the code so that it works with your colnames. I added a column for the labels, so that in the plot the bars are labelled "2019 Series_1" and "2020 Series_1". But you can adjust that if you want other labels. Also. I added a code line to remove the title of the xaxis. But you can adjust the title as you like.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.