Contenu principal

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la version originale en anglais.

Visualisez la corrélation entre la température et l'humidité

Cet exemple montre comment lire plusieurs variables à partir d'un canal ThingSpeak ™ existant et générer un scatter plot pour examiner la corrélation entre la température et la pression. Dans l'exemple, vous modifiez l'un des modèles de code fournis par l'application MATLAB Analysis et MATLAB Visualizations.

ThingSpeak canal 12397 contient des données météorologiques provenant d'une station météorologique située au sommet d'un parking sur le campus MathWorks ® à Natick, MA. Le champ 4 contient la mesure de température, le champ 3 contient la mesure d'humidité.

Créer une MATLAB Visualization à partir du code du modèle

Pour créer une visualisation de nuage de points des données d'un canal ThingSpeak, vous pouvez écrire un script MATLAB ® à l'aide d'un modèle de code fourni dans l'application MATLAB Visualizations.

Accédez à l’onglet Apps et sélectionnez MATLAB Visualizations. Cliquez sur New, sélectionnez Visualize correlation between temperature and humidity, puis cliquez sur Create.

Visualisez vos données

ThingSpeak remplit le champ MATLAB Code avec le code pour générer l'histogramme de température.

1) Définissez les variables pour communiquer avec ThingSpeak. Dans cet exemple, la clé d'API en lecture n'est pas nécessaire car le canal de la station météo est public. Si vous lisez depuis votre propre canal, vous pouvez modifier ces valeurs.

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

2) Utilisez thingSpeakRead pour récupérer 300 points à partir des champs de température et d'humidité.

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

3) Extraire les données de température et de vitesse du vent.

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

4) Utilisez scatter pour générer le tracé. Définissez les étiquettes des axes x et y à l'aide de xlabel et 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) Vous pouvez modifier le code du modèle pour l'adapter à votre application. Par exemple, vous pouvez modifier le nombre de points à lire et les titres des tracés dans le code. Cliquez sur Save and Run pour générer la sortie. Étant donné que le scatter plot est généré à partir de données temps réel, votre tracé ressemble mais pas à celui-ci.

Ajouter une visualisation à votre vue de canal

Vous pouvez éventuellement ajouter des visualisations enregistrées à votre canal. Dans Display Settings, cliquez sur Add/Edit this Visualization to a Channel pour développer la liste des canaux.

Cochez la case correspondant au canal auquel vous souhaitez ajouter la visualisation. Pour ajouter des visualisations privées, cochez Private View. Pour partager l'URL et ajouter la visualisation à la Public View, sélectionnez Create a public URL. Pour mettre à jour vos sélections, cliquez sur Save Display Settings.

Déterminer l'ajustement linéaire

La fonction polyfit peut fournir un ajustement aux données linéaires lorsque le degré d'ajustement est défini sur une valeur de 1. Le code suivant n'est pas inclus dans le modèle. Pour tracer plusieurs distributions, ajoutez ce code au modèle.

1) Utilisez polyfit pour effectuer un ajustement aux données. Spécifiez 1 comme dernier argument pour un ajustement linéaire.

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

2) Étant donné que la température et l'humidité n'ont pas de relation définie, l'ajustement linéaire n'est pas nécessairement un bon ajustement. Vous pouvez vérifier la qualité de l’ajustement avec un coefficient de corrélation. Calculer et afficher le coefficient de corrélation.

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

3) Appuyez sur Save and Run pour générer le tracé double. Le nuage de points a une pente négative, et donc un coefficient de corrélation négatif : l'humidité diminue avec l'augmentation de la température pour cette mesure. Une valeur r de 1 ou -1 indique un ajustement parfait. La valeur r de ces données confirme que l'ajustement est relativement médiocre.

Voir aussi

Fonctions

Rubriques