Mapa cieplna R z rozbieżną paletą kolorów

Próbuję stworzyć prostą mapę cieplną w R, używając rozbieżnej palety kolorów. Chcę użyć gradientu, aby wszystkie liczby poniżej progu N były oznaczone kolorem (powiedzmy fioletowym), a wszystkie liczby powyżej progu są oznaczone innym kolorem (powiedzmy pomarańczowym). Im dalej numer jest od progu, tym ciemniejszy powinien być kolor.

Oto przykładowy zestaw danych:

Division,COL1,COL2,COL3,COL4,COL5,COL6,COL7
Division 1,31.9221884012222,75.8181694429368,97.0480443444103,96.295954938978,70.5677134916186,63.0451830103993,93.0396212730557
Division 2,85.7012346852571,29.0621076244861,16.9130333233625,94.6443660184741,19.9103083927184,61.9562198873609,72.3791105207056
Division 3,47.1665125340223,99.4153356179595,8.51091076619923,79.1276383213699,41.915355855599,7.45079894550145,24.6946100145578
Division 4,66.0743870772421,24.6163331903517,78.694460215047,42.04714265652,50.2694897353649,73.0409651994705,87.3745442833751
Division 5,29.6664374880493,35.4036891367286,19.2967326845974,5.48460693098605,32.4517334811389,15.5926876701415,76.0523204226047
Division 6,95.4969164915383,8.63230894319713,61.7535551078618,24.5590241160244,25.5453423131257,56.397921172902,44.4693325087428
Division 7,87.5015622004867,28.7770316936076,56.5095080062747,34.6680747810751,28.1923673115671,65.0204187724739,13.795713102445
Division 8,70.1077231671661,72.4712177179754,38.4903231170028,36.1821102909744,97.0875509083271,17.184783378616,78.2292529474944
Division 9,47.3570406902581,90.2257485780865,65.6037972308695,77.0234781783074,25.6294377148151,84.900529962033,82.5080851092935
Division 10,58.0811711959541,0.493217632174492,58.5604055318981,53.5780876874924,9.12552657537162,20.313960686326,78.1371118500829
Division 11,34.6708688884974,76.711881859228,22.6064443588257,22.1724311355501,5.48891355283558,79.1159523651004,56.8405059166253
Division 12,33.6812808644027,44.1363711375743,70.6362190190703,3.78900407813489,16.6075889021158,9.12654218263924,39.9711143691093

Oto prosty urywek do utworzenia mapy cieplnej z powyższych danych

data <- read.csv("dataset.csv", sep=",")
row.names(data) <- data$Division
data <- data[,2:7]
data_matrix <- data.matrix(data) 
heatmap(data_matrix, Rowv=NA, Colv=NA, col = heat.colors(256), scale="column", margins=c(5,10))

Jak mogę zmodyfikować powyższy kod, aby utworzyć:

gradient koloru (pomarańczowy) dla wszystkich liczb POWYŻEJ 50 (ciemniej, im dalej liczba wynosi od 50)gradient koloru (fioletowy) dla wszystkich liczb PONIŻEJ 50 (ciemniej, im dalej liczba wynosi od 50)Miło mieć (ale opcjonalnie) zapisywać wartość liczbową w komórce siatkiMiło mieć (ale opcjonalnie), użyj innego koloru dla komórki siatki, która jest DOKŁADNIE liczbą progową (w tym przypadku 50)

[[Edytować]]

Właśnie to widziałempytanie o SO, co wydaje się bardzo podobne. Odpowiedź wykorzystuje ggplot (którego nie mam doświadczenia) i jak dotąd nie byłem w stanie dostosować rozwiązania ggplot do moich nieco bardziej skomplikowanych danych.