Contenuto principale

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l’originale in inglese.

Visualizza la correlazione tra temperatura e umidità

Questo esempio mostra come leggere più variabili da un canale ThingSpeak ™ esistente e generare un grafico a dispersione per esaminare la correlazione tra temperatura e pressione. Nell'esempio, si modifica uno dei modelli di codice forniti dalle app MATLAB Analysis e MATLAB Visualizations.

Il canale 12397 di ThingSpeak contiene dati meteorologici provenienti da una stazione meteorologica situata in cima a un parcheggio nel campus MathWorks ® a Natick, MA. Il campo 4 contiene la misurazione della temperatura, il campo 3 contiene la misurazione dell'umidità.

Crea una MATLAB visualizzazione dal codice modello

Per creare una visualizzazione a dispersione dei dati da un canale ThingSpeak, è possibile scrivere uno script MATLAB ® utilizzando un modello di codice fornito nell'app MATLAB Visualizations.

Vai alla scheda App e seleziona Visualizzazioni MATLAB. Fare clic su Nuovo, selezionare Visualizza correlazione tra temperatura e umidità e fare clic su Crea.

Visualizza i tuoi dati

ThingSpeak popola il campo MATLAB Codice con il codice per generare l'istogramma della temperatura.

1) Impostare le variabili per comunicare con ThingSpeak. In questo esempio, la chiave API di lettura non è necessaria perché il canale della stazione meteorologica è pubblico. Se stai leggendo dal tuo canale, puoi modificare questi valori.

readChannelID = 12397;
TemperatureFieldID = 4;
HumidityFieldID = 3;
readAPIKey = '';

2) Utilizzare thingSpeakRead per recuperare 300 punti dai campi temperatura e umidità.

data = thingSpeakRead(readChannelID,'Fields',[TemperatureFieldID HumidityFieldID], ...
      'NumPoints',300, 'ReadKey',readAPIKey); 

3) Estrarre i dati sulla temperatura e sulla velocità del vento.

temperatureData = data(:, 1);
humidityData = data(:, 2);

4) Utilizzare scatter per generare il grafico. Imposta le etichette degli assi x e y utilizzando xlabel e ylabel.

scatter(temperatureData,humidityData);
xlabel('Temperature');
ylabel('Humidity');

Figure contains an axes object. The axes object with xlabel Temperature, ylabel Humidity contains an object of type scatter.

5) Puoi modificare il codice del modello per adattarlo alla tua applicazione. Ad esempio, è possibile modificare il numero di punti da leggere e i titoli dei grafici nel codice. Fare clic su Salva ed esegui per generare l'output. Poiché il grafico a dispersione viene generato da dati in tempo reale, il grafico sarà simile ma non identico a questo grafico.

Aggiungi visualizzazione alla visualizzazione del tuo canale

Facoltativamente, puoi aggiungere visualizzazioni salvate al tuo canale. In Impostazioni di visualizzazione, fai clic su Aggiungi/modifica questa visualizzazione a un canale per espandere l'elenco dei canali.

Fare clic sulla casella di controllo corrispondente al canale a cui si desidera aggiungere la visualizzazione. Per aggiungere visualizzazioni private, seleziona Visualizzazione privata. Per condividere l'URL e aggiungere la visualizzazione alla Visualizzazione pubblica, seleziona Crea un URL pubblico. Per aggiornare le selezioni, fare clic su Salva impostazioni di visualizzazione.

Determinare l'adattamento lineare

La funzione polyfit può fornire un adattamento ai dati lineari quando il grado di adattamento è impostato su un valore pari a 1. Il codice seguente non è incluso nel modello. Per tracciare più distribuzioni, aggiungere questo codice al modello.

1) Utilizzare polyfit per eseguire un adattamento ai dati. Specificare 1 come ultimo argomento per un adattamento lineare.

fitData = polyfit(temperatureData,humidityData,1);
display(fitData(1),'Slope');
Slope = -1.4785
display(fitData(2),'Intercept');
Intercept = 105.7281

2) Poiché temperatura e umidità non hanno una relazione definita, l'adattamento lineare non è necessariamente un buon adattamento. È possibile verificare la qualità dell'adattamento con un coefficiente di correlazione. Calcola e visualizza il coefficiente di correlazione.

r = corrcoef(temperatureData,humidityData);
display(r(2),'Correlation Coefficient');
   -0.9873

3) Premere Salva ed esegui per generare il grafico doppio. Il diagramma di dispersione ha una pendenza negativa e quindi un coefficiente di correlazione negativo: l'umidità diminuisce con l'aumentare della temperatura per questa misurazione. Un valore r pari a 1 o -1 indica una corrispondenza perfetta. Il valore r per questi dati conferma che l'adattamento è relativamente scarso.

Vedi anche

Funzioni

Argomenti