I have the following data frame:
lp_dat <- structure(list(kmeans_cluster = c("1", "2", "3", "4", "1", "2",
"3", "4", "1", "2", "3", "4"), tc = structure(c(2L, 2L, 2L, 2L,
3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L), .Label = c("NT", "IBD+PBS",
"IBD+Serpin"), class = "factor"), n = c(924, 1389, 0, 652, 924,
0, 0, 0, 110, 1389, 11851, 0)), row.names = c(NA, -12L), class = c("tbl_df",
"tbl", "data.frame"))
What I want to do is to smooth the plot. Below is the code I use:
lp <- ggplot(lp_dat, aes(x = tc, y = n, group = 1)) +
geom_point(color = "blue") +
geom_line(linetype = "solid", size = 0.5, color = "blue") +
ggalt::geom_xspline( size = 0.5, linetype = 'dashed') +
facet_wrap(~kmeans_cluster, scales = "free_y") +
theme_bw() +
xlab("") +
ylab("Count")
lp
It produces the following plot:
Noticed that the dashed line is the intended smoothen line with ggalt::geom_xspline().
I intended the order of x-axis to be:
c("NT", "IBD+PBS", "IBD+Serpin")
Hence they are encoded as a factor.
How can I make it a smooth one like this? But with the intended x-axis order: