Hartă de reglare a temperaturii

library(gplots)
shades= c(seq(-1,0.8,length=64),seq(0.8,1.2,length=64),seq(1.2,3,length=64))
 heatmap.2(cor_mat, dendrogram='none', Rowv=FALSE, Colv=FALSE, col=redblue(64),  
breaks=shades, key=TRUE, cexCol=0.7, cexRow=1, keysize=1)

Există o problemă cu pauzele. Doresc să primesc ajutor în acest sens.

După rularea codului primesc acest mesaj de eroare

Error in image.default(1:nc, 1:nr, x, xlim = 0.5 + c(0, nc), ylim = 0.5 + : must have one more break than colour

Vă mulțumesc pentru timpul și atenția acordate.

1
După rularea acestui cod primesc acest mesaj de eroare: Eroare în image.default (1: nc, 1: nr, x, xlim = 0.5 + c (0, nc), ylim = 0.5 + este problema
adăugat autor rockswap, sursa
Care este intrebarea ta? Ce probleme cu pauza? Cu ce ​​vrei să ajuți?
adăugat autor Andrie, sursa
Vă rugăm să adăugați aceste informații la întrebarea dvs.
adăugat autor Andrie, sursa

1 răspunsuri

Ei bine, nu avem cor_mat, așa că nu putem încerca singuri asta, dar problema pare să fie ceea ce se spune în cutie, nu-i așa? Modul de încălzire (și, în general, toate funcțiile bazate pe imagine) funcționează cu pauze și un vector de culori, este că pauzele definesc punctele în care modificările valorii matricei de date înseamnă schimbarea culorii. Pe scurt, dacă break = c (1,2,3) și col = c ("roșu", "albastru")

  1. values < 1 will be transparent
  2. values >= 1, <= 2 will be plotted as red
  3. values > 2, <= 3 will be plotted as blue
  4. values > 3 will be transparent

Ceea ce se întâmplă în codul dvs. este că cu "umbra" ați furnizat un vector de lungime 3 * 64 la break , în timp ce redblue (64) vă oferă doar 64 de culori. Încercați să înlocuiți redblue (64) cu, de exemplu, redblue (3 * 64-1) .

2
adăugat
Mulțumiri. Înlocuirea cu (3 * 64-1) a funcționat.
adăugat autor rockswap, sursa