I would like to get a plot which on the left side keeps 6 rows in the order listed S1-6, and as for columns I'm only am interested in the selected intersections (only non-empty S1 and S2 and one specific empty S1-S2 intersect).
upset(df,
sets = c("S1","S2","S3","S4", "S5","S6"),
matrix.color="black",
point.size=1,
line.size = 0.3,
text.scale=c(1, 0.5, 0.5, 0.4, 0.75, 0.6),
mainbar.y.max=21,
mb.ratio = c(0.7, 0.3),
intersections = list(
list("S1"),
list("S1", "S3"),
list("S1", "S4"),
list("S1", "S6"),
list("S1", "S3", "S4"),
list("S1", "S3", "S6"),
list("S1", "S4", "S6"),
list("S1", "S3", "S4", "S5"),
list("S1", "S3", "S4", "S6"),
list("S1", "S3", "S4", "S5", "S6"),
list("S1", "S2"),
list("S2"),
list("S2", "S3"),
list("S2", "S3", "S4"),
list("S2", "S3", "S4", "S6"),
list("S2", "S3", "S4", "S5", "S6")),
queries = list(
list(query = intersects, params = list("S1"), color = "maroon", active = T),
list(query = intersects, params = list("S1", "S3"), color = "maroon", active = T),
list(query = intersects, params = list("S1", "S4"), color = "maroon", active = T),
list(query = intersects, params = list("S1", "S6"), color = "maroon", active = T),
list(query = intersects, params = list("S1", "S3", "S4"), color = "maroon", active = T),
list(query = intersects, params = list("S1", "S3", "S6"),color = "maroon", active = T),
list(query = intersects, params = list("S1", "S4", "S6"), color = "maroon", active = T),
list(query = intersects, params = list("S1", "S3", "S4", "S5"), color = "maroon", active = T),
list(query = intersects, params = list("S1", "S3", "S4", "S6"), color = "maroon", active = T),
list(query = intersects, params = list("S1", "S3", "S4", "S5", "S6"), color = "maroon", active = T),
list(query = intersects, params = list("S1", "S2"), color = "black", active = T),
list(query = intersects, params = list("S2"), color = "blue", active = T),
list(query = intersects, params = list("S2", "S3"), color = "blue", active = T),
list(query = intersects, params = list("S2", "S3", "S4"), color = "blue", active = T),
list(query = intersects, params = list("S2", "S3", "S4", "S6"), color = "blue", active = T),
list(query = intersects, params = list("S2", "S3", "S4", "S5", "S6"), color = "blue", active = T)
))
here is how my plot looks like
BUT, I the rows order has changed and I would like to use group.by="sets", so my question is how I can change order of both rows and columns, select intersections shown and change the color of selected set. I would like to have S1-6 on the left and grouped reds, then black empty intersection, and then grouped blues.
The ComplexUpset package is very nice, but I wasn't able to get what I need either. Could someone help me please?