Home > Mobile >  Why does my line plot (ggplot2) look vertical?
Why does my line plot (ggplot2) look vertical?

Time:10-12

I am new to coding in R, when I was using ggplot2 to make a line graph, I get vertical lines. This is my code:

all_trips_v2 %>%
  group_by(Month_Name, member_casual) %>%
  summarise(average_duration = mean(length_of_ride))%>%
  ggplot(aes(x = Month_Name, y = average_duration))   geom_line()

And I'm getting something like this:

1

This is a sample of my data:

2 (Not all the cells in the Month_Name is August, it's just sorted)

Any help will be greatly appreciated! Thank you.

CodePudding user response:

You should add a grouping argument. see further info here: https://ggplot2.tidyverse.org/reference/aes_group_order.html

# Multiple groups with one aesthetic
p <- ggplot(nlme::Oxboys, aes(age, height))
# The default is not sufficient here. A single line tries to connect all
# the observations.
p   geom_line()
# To fix this, use the group aesthetic to map a different line for each
# subject.
p   geom_line(aes(group = Subject))

CodePudding user response:

I added a bit more code just for the mere example. the data i chose is probably not the best choice to display a proper timer series. I hope the features of ggplot i displayed will be benficial for you in the future

library(tidyverse)
library(lubridate)
mydat <- sample_frac(storms,.4)


# setting the month of interest as the current system's month
month_of_interest <- month(Sys.Date(),label = TRUE)


mydat %>% group_by(year,month) %>% 
  summarise(avg_pressure = mean(pressure)) %>% 
  mutate(month = month(month,label = TRUE),
         current_month = month == month_of_interest) %>% 
  
  # the mutate code is just for my example.
  
  ggplot(aes(x=year, y=avg_pressure,
             color=current_month,
             group=month,
             size=current_month
             )) geom_line(show.legend = FALSE) 
  
  ## From here its not really important,
  ## just ideas for your next plots
  
  scale_color_manual(values=c("grey","red")) 
  scale_size_manual(values = c(.4,1)) 
  ggtitle(paste("Averge yearly pressure,\n
with special interest in",month_of_interest)) 
  theme_minimal()


## Most important is that you notice the group argument and also,
# in most cases you will want to color your different lines.
# I added a logical variable so only October will be colored,
# but that is not mandatory

  • Related