R Heatmap mit divergierender Farbpalette

Ich versuche, eine einfache Heatmap in R mit einer divergierenden Farbpalette zu erstellen. Ich möchte einen Farbverlauf verwenden, damit alle Zahlen unterhalb einer Schwelle N eine Farbe (z. B. lila) und alle Zahlen oberhalb der Schwelle eine andere Farbe (z. B. orange) haben. Je weiter die Zahl von der Schwelle entfernt ist, desto dunkler sollte die Farbe sein.

Hier ist ein Beispieldatensatz:

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

Hier ist ein einfacher Ausschnitt, um eine Heatmap aus den oben genannten Daten zu erstellen

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

Wie kann ich den obigen Code ändern, um Folgendes zu erzeugen:

ein Farbverlauf (orange) für alle Zahlen AB 50 (dunkler je weiter die Zahl von 50 ist)ein Farbverlauf (lila) für alle Zahlen UNTER 50 (dunkler je weiter die Zahl von 50 ist)Schön, dass (aber optional) der Zahlenwert in die Gitterzelle geschrieben wirdSchön zu haben (aber optional), verwenden Sie eine andere Farbe für die Rasterzelle, die GENAU der Schwellenwert ist (in diesem Fall 50)

[[Bearbeiten]]

Ich habe das gerade gesehenFrage zu SO, was sehr ähnlich zu sein scheint. Die Antwort verwendet ggplot (mit dem ich keine Erfahrung habe), und ich war bisher nicht in der Lage, die ggplot-Lösung an meine etwas komplizierteren Daten anzupassen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage