Open Rekyt opened 3 years ago
Hi Matthias,
thanks for the thoughtful issue. What you suggest sounds like a useful feature. However I am afraid, that I don't have the capacity to implement this myself. But I would be happy to accept and review a pull request.
Best, Constantin
Hi Constantin, Thank you for your very quick answer. I'll try proposing a PR if I can wrap my head around a good solution.
Thanks. If you have any question, feel free to ask :)
factor_levels = c() #provide your own levels
upset_overriding_fn = function(df) {
df %>%
mutate(single_label = factor(single_label,levels = factor_levels ) ) %>%
ggplot(aes(x = at, y = single_label)) +
geom_rect(aes(fill= index %% 2 == 0), ymin=df$index-0.5,
ymax=df$index+0.5, xmin=0, xmax=1) +
geom_point(aes(color= observed), size = 3) +
geom_line(data= function(dat) dat[dat$observed, ,drop=FALSE],
aes(group = labels), size= 1.2) +
ylab("") + xlab("") +
scale_x_continuous(limits = c(0, 1), expand = c(0, 0)) +
scale_fill_manual(values= c(TRUE
= "white", FALSE
= "#F7F7F7")) +
scale_color_manual(values= c(TRUE
= "black", FALSE
= "#E0E0E0")) +
guides(color="none", fill="none") +
theme(
panel.background = element_blank(),
axis.text.x = element_blank(),
axis.ticks.y = element_blank(),
axis.ticks.length = unit(0, "pt"),
axis.title.y = element_blank(),
axis.title.x = element_blank(),
axis.line = element_blank(),
panel.border = element_blank()
)
}
When plotting: pt1 + axis_combmatrix(sep = "," ,override_plotting_function = upset_overriding_fn )
Hi @const-ae 👋 , Thank you so much for the
ggupset
package, I think it really helps to visualize categorical data! I've looked at previous issues and couldn't find an answer to my question: Is there an easy way to set the order of the y axis in the combmatrix?It seems that changing factor levels doesn't affect at all the row orders of the comb matrix. I thought it was only due to ordering by frequency but it does not seem to be only driven by frequency. From what I understood looking at the code the order is set at these lines: https://github.com/const-ae/ggupset/blob/d379fb55cebdf95e8becd8c19dc5555c0e58a487/R/axis_combmatrix.R#L181-L182
Would it be possible to have the user provide a custom order in place of the one created in
labels_split
?Thanks again for the great package!