I need to create custom heat map as illustrated in the attached figure. It is different from a conventional heat map in the sense that I want it to use two color gradients, one for positive values and one for negative values.
As shown in the attached figure, I would like one color to depict the intensity of the values that are positive (or ideally above a certain threshold) and another color to depict the intensity of the values that are negative (alternatively, below the threshold).
A little background: I have a binary choice set, one option is to be preferred for a certain range of data while the other is preferred for the remaining data. I want to provide a visual aid that will depict which option/choice is better for the different combinations of data but I want the visual aid to also provide the scale of "betterness" that one option has over the other for that instance. So the color would tell which option to pick while the intensity of the color with tell how much better is that option compared to the other.
Most basic heatmap with ggplot2 This is the most basic heatmap you can build with R and ggplot2 , using the geom_tile() function. Input data must be a long format where each row provides an observation.
Complex heatmap. ComplexHeatmap is an R/bioconductor package, developed by Zuguang Gu, which provides a flexible solution to arrange and annotate multiple heatmaps. It allows also to visualize the association between different data from different sources.
here is an example using ggplot2
:
# sample data
df <- data.frame(expand.grid(x = 1:4, y = 1:4), v = runif(16, -10, 10))
# plot
ggplot(df, aes(x, y, fill = v, label = sprintf("%.1f", v))) +
geom_tile() + geom_text() +
scale_fill_gradient2(low = "blue", high = "red")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With