I would like to add another row of empty tiles to my tile plot shown below for "No.14"
bars. There would be no data for that row, so just adding an empty row to the dataframe was not sufficient as it created an NA
item in the legend which I do not want.
Here is the data:
> dput(coupler.graph)
structure(list(Category = c("HBC", "TC", "BSC", "GSC", "GSC",
"SSC", "SSC", "GSC", "GSC", "SSC", "SSC", "SSC", "HBC", "TC",
"BSC", "BSC", "GSC", "GSC", "SSC", "HBC", "HBC", "TC", "TC",
"BSC", "GSC", "GSC", "GSC", "GSC", "GSC", "TC", "BSC", "BSC",
"GSC", "GSC"), `Bar Size` = c("No. 5", "No. 5", "No. 5", "No. 5",
"No. 5", "No. 6", "No. 6", "No. 6", "No. 6", "No. 8", "No. 8",
"No. 8", "No. 8", "No. 8", "No. 8", "No. 8", "No. 8", "No. 8",
"No. 10", "No. 10", "No. 10", "No. 10", "No. 10", "No. 10", "No. 10",
"No. 10", "No. 10", "No. 11", "No. 11", "No. 18", "No. 18", "No. 18",
"No. 18", "No. 18"), `No. Bars` = c(3, 9, 3, 6, 6, 85, 85, 7,
7, 90, 90, 90, 7, 9, 6, 6, 21, 21, 9, 22, 22, 27, 27, 13, 25,
25, 25, 8, 8, 4, 4, 4, 4, 4), Failure = c("Bar fracture", "Bar fracture",
"Bar fracture", "Bar pullout", "Bar fracture", "Bar pullout",
"Bar fracture", "Coupler failure", "Bar fracture", "Coupler failure",
"Bar pullout", "Bar fracture", "Bar fracture", "Bar fracture",
"Bar pullout", "Bar fracture", "Bar fracture", "Bar pullout",
"Coupler failure", "Coupler failure", "Bar fracture", "Coupler failure",
"Bar fracture", "Bar fracture", "Bar pullout", "Bar fracture",
"Coupler failure", "Bar fracture", "Coupler failure", "Coupler failure",
"Bar fracture", "Bar pullout", "Bar fracture", "Coupler failure"
), x = c("1-3", "7-9", "1-3", "5-7", "5-7", "30-90", "30-90",
"5-7", "5-7", "30-90", "30-90", "30-90", "5-7", "7-9", "5-7",
"5-7", "20-30", "20-30", "7-9", "20-30", "20-30", "20-30", "20-30",
"11-15", "20-30", "20-30", "20-30", "7-9", "7-9", "3-5", "3-5",
"3-5", "3-5", "3-5")), row.names = c(NA, -34L), class = c("tbl_df",
"tbl", "data.frame"))
My code to create the interactive plot:
labels1 <- factor(c("0", "1-3", "3-5", "5-7", "7-9", "9-11", "11-15", "15-20","20-90"), levels = c("0", "1-3", "3-5", "5-7", "7-9", "9-11", "11-15", "15-20","20-30","30-90")) values1 <- c("white", "#ffffd9", "#edf8b1", "#c7e9b4", "#7fcdbb", "#41b6c4", "#1d91c0", "#225ea8", "#253494","#081d58") labels1 <- factor(c("0", "1-3", "3-5", "5-7", "7-9", "9-11", "11-15", "15-20","20-90"), levels = c("0", "1-3", "3-5", "5-7", "7-9", "9-11", "11-15", "15-20","20-30","30-90")) values1 <- c("white", "#ffffd9", "#edf8b1", "#c7e9b4", "#7fcdbb", "#41b6c4", "#1d91c0", "#225ea8", "#253494","#081d58")
plot1 <- ggplot(coupler.graph) + aes(x = Category, y = fct_inorder(`Bar Size`), fill = factor(x,
levels = c("0", "1-3", "3-5", "5-7", "7-9",
"9-11", "11-15", "15-20","20-30", "30-90"))) +
geom_tile(width=0.9, height=0.9) + theme_classic() + scale_fill_manual(labels = factor(labels1), values = values1) +
labs(x = "Splicer Type", y = "Bar Size") +
theme(plot.title = element_blank(), axis.text = element_text(color = "black", size = 12), axis.ticks.x = element_blank(),
axis.line = element_line(color = "black", size = 0.2), axis.ticks.y = element_line(color = "black", size = 0.2),
axis.title.y = element_text(color = "black", size = 16, margin = margin(0,40,0,0)),
axis.title.x = element_text(color = "black", size = 16, margin = margin(35,0,0,0)),
legend.title = element_blank(), legend.text = element_text(color = "black", size = 12))
ggplotly(
p = ggplot2::last_plot(),
width = NULL,
height = NULL,
tooltip = c("Category", "Failure"),
dynamicTicks = FALSE,
layerData = 1,
originalData = TRUE,) %>% add_annotations( text="Number of\nSpecimens", xref="paper", yref="paper",
x=1.1, xanchor="left", y=0.9, yanchor="bottom", font = list(size = 18),
legendtitle=TRUE, showarrow=FALSE ) %>%
layout(yaxis = list(title = list(text = "Bar Size", standoff = 30L)),
xaxis = list(title = list(text = "Bar Size",standoff = 30L)),
legend = list(orientation = "v", x = 1.1, y = 0.13))
The resulting plot: