Тепловая карта R с расходящейся цветовой палитрой

Я пытаюсь создать простую тепловую карту в R, используя расходящуюся цветовую палитру. Я хочу использовать градиент, чтобы все числа ниже порога N были обозначены цветом (скажем, фиолетовым), а все числа выше порога обозначены другим цветом (скажем, оранжевым). Чем дальше число от порога, тем темнее должен быть цвет.

Вот примерный набор данных:

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

Вот простой фрагмент для создания тепловой карты из приведенных выше данных

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))

Как я могу изменить приведенный выше код для получения:

a color gradient (orange) for all numbers ABOVE 50 (darker the further the number is from 50) a color gradient (purple) for all numbers BELOW 50 (darker the further the number is from 50) Nice to have (but optional) write the number value in the grid cell Nice to have (but optional), use a different color for grid cell that is EXACTLY the threshold number (50 in this case)

[[Edit]]

Я только что видел этовопрос по ТАчто, похоже, очень похоже. В ответе используется ggplot (с которым у меня нет опыта), и я до сих пор не смог адаптировать решение ggplot к своим немного более сложным данным.

Ответы на вопрос(2)

Ваш ответ на вопрос