For some reason I can't manage to get the x axis labels to show. Context: this is supposed to be continuous work over the time of a week.
library(ggplot2)
library(dplyr)
# FIGURE #####
oneseventh <- 1/7
work <-c(oneseventh)
work <- rep(work,each=7)
days_num <-c("1","2","3","4","5","6","7")
days_vec <- c(1:7)
npro_data <- data.frame(work)
npro_plot <- ggplot(npro_data, aes(x=1:7, y=work,))
npro_plot labs(x = "Days of the Week",
y ="Amount of Work per day (%)",
title = "Non-Procrastinator",
tag = "A",
caption = "(based on data from ...)")
coord_cartesian(xlim =c(1, 7), ylim = c(0,100))
scale_x_discrete(labels=days_num,breaks=days_num)
geom_point()
geom_line()
#
See the plot I get with this code:

CodePudding user response:
Since you used x = 1:7 in your ggplot(aes), you have to specify a scale_x_continuous (since 1:7 would be a continuous variable, not categorical or discrete). Also, you don't need to use the labels argument in scale_x_continuous, setting the breaks is already enough.
If it's possible, I would recommend to include all variables that are involved in the ggplot in the input dataframe (i.e. your npro_data). It'd be much easier to handle and avoid ambiguity.
library(ggplot2)
ggplot(npro_data, aes(x=1:7, y=work,))
labs(x = "Days of the Week",
y ="Amount of Work per day (%)",
title = "Non-Procrastinator",
tag = "A",
caption = "(based on data from ...)")
coord_cartesian(xlim =c(1, 7), ylim = c(0,100))
scale_x_continuous(breaks = days_vec)
geom_point()
geom_line()
However, since in your question you mentioned that you would like the x-axis to be weekdays, then it'd probably be better to include days_num in your npro_data, and map that to the x aesthetics in ggplot. You'll need to use scale_x_discrete to change the labelling and breaks if that is the case.

