Here is an example of having a date on the x axis for every 7 days. You can decrease that to every day if you want by setting by = 1 in the seq.Date function, but I think that will be very hard to read.
library(dplyr, warn.conflicts = FALSE)
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following objects are masked from 'package:dplyr':
#>
#> intersect, setdiff, union
#> The following objects are masked from 'package:base':
#>
#> date, intersect, setdiff, union
library(ggplot2)
data <- read.csv("~/R/Play/covid19.csv",header=T)
data2 <- filter(data, data$prname == "Canada") %>%
mutate(date = dmy(date))
data2 %>%
ggplot(aes(x=date, y=numconf)) +
geom_point() +
geom_line() +
geom_smooth() +
scale_x_date(breaks = seq.Date(from = as.Date("2020-01-31"),
to = as.Date("2020-05-20"), by = 7)) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 0.5))
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Created on 2020-05-20 by the reprex package (v0.3.0)