Termocamera IR- scala colore

@faca87 devi cercare l'istruzione relativa alla libreria che stai usando!
Graphics Primitives | Adafruit GFX Graphics Library | Adafruit Learning System

Comunque va bene copiaincollare del codice preso online, ma è fondamentale cercare di capire cosa fa se vuoi metterci le mani.
Io ad esempio quando mi capita, riscrivo tutti i commenti dei passaggi essenziali per chiarirmi cosa voleva ottenere il programmatore.

Ad esempio in questo caso (ho omesso tutto ciò che è dichiarativo o poco importante per capirne il funzionamento):

// Array di unsigned int che contiene i valori dei colori da visualizzare
const uint16_t camColors[] = { ................  };

// Array di float che andrà a memorizzare i valori di 
// intensità IR letti dal sensore AMG (matrice 8x8 = 64 pixel)
float pixels[AMG88xx_PIXEL_ARRAY_SIZE];

// Dimensione orizzontale e verticale di ciascun rettangolo che verrà disegnato
uint16_t displayPixelWidth, displayPixelHeight;

void loop() {
  // lettura della matrice 8x8 dal sensore AMG e salvataggio dei valori nell'array pixels[]
  amg.readPixels(pixels);

  // per ciascun valore letto viene disegnato un rettangolino del colore equivalente
  for(int i=0; i<AMG88xx_PIXEL_ARRAY_SIZE; i++){
	// Estrazione del colore da visualizzare in funzione del valore IR 
	// I colori totali sono 256, quindi viene approssimato con map a quello più vicino
    uint8_t colorIndex = map(pixels[i], MINTEMP, MAXTEMP, 0, 255);
    colorIndex = constrain(colorIndex, 0, 255);

    // Questa istruzione disegna un rettangolo del colore selezionato 
	// spostando di volta in volta la posizione XY in funzione di i
	// In totale saranno 64 rettangoli con dimensione pari a tft.with/8 e tft.height/8 
	// Di solito i display tft da 1.44" sono 128*128 pixel
    tft.fillRect(displayPixelHeight * floor(i / 8), displayPixelWidth * (i % 8),
        displayPixelHeight, displayPixelWidth, camColors[colorIndex]);
  }
  
  // Per disegnare la scala dei colori, dobbiamo scansionare l'array dei colori e 
  // disegnare spostandoci nella direzione voluta. Purtroppo i pixel disponibili 
  // sono meno dei coloti totali (128 pixel vs 256 colori), quindi disegniamo solo una riga
  // mappando i colori in funzione della dimensione del display LCD.
  // Nel caso specifico potremmo disegnare un colore ogni due, ma è meglio scrivere un codice più generico che contempla anche altri casi

  for(int i=0; i<tft.height(); i++){
	// Estrazione del colore da visualizzare in funzione del valore IR 
	// I colori totali sono 256, quindi viene approssimato con map a quello più vicino
    uint8_t colorIndex= map(i, 0, tft.height(), 0, 255);
    colorIndex = constrain(colorIndex, 0, 255);

    // Questa istruzione disegna una piccola riga orizzontale da 3 pixel 
	// spostando di volta in volta la posizione verticale in funzione di i
	// In totale saranno 128 linee contigue che formeranno un rettangolo 
    // da 3*128 pixel con il gradiente di tutti i colori possibili.
    tft.drawLine(0, i, 2, i, camColors[colorIndex]);
  }
  
}