Différences entre les versions de « Une courbe de température en Python »
Aller à la navigation
Aller à la recherche
Ligne 72 : | Ligne 72 : | ||
import matplotlib.pyplot as plt | import matplotlib.pyplot as plt | ||
# Heures et températures | # Heures et températures correspondantes | ||
heures = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23] | heures = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23] | ||
temperatures = [17.0, 18.0, 18.0, 18.0, 18.0, 18.5, 18.5, 19.0, 18.0, 18.0, 18.0, 18.0, 18.5, 19.0, 19.0, 19.0, 18.5, 10.0] | temperatures = [17.0, 18.0, 18.0, 18.0, 18.0, 18.5, 18.5, 19.0, 18.0, 18.0, 18.0, 18.0, 18.5, 19.0, 19.0, 19.0, 18.5, 10.0] | ||
# Création du graphique | # Création du graphique avec des points en abscisse pour chaque heure entière | ||
plt.figure(figsize=(10, 6)) | plt.figure(figsize=(10, 6)) | ||
plt.plot(heures, temperatures, marker='o', linestyle='-', color='b') | plt.plot(heures, temperatures, marker='o', linestyle='-', color='b') | ||
# Afficher un point pour chaque heure entière | |||
plt.xticks(range(min(heures), max(heures)+1)) | |||
# Ajout de titres et de labels | # Ajout de titres et de labels | ||
Ligne 89 : | Ligne 92 : | ||
plt.tight_layout() | plt.tight_layout() | ||
plt.show() | plt.show() | ||
</pre> | </pre> |
Version du 16 novembre 2023 à 22:34
Après avoir paramétré une automatisation Home Assistant pour régler la température de consigne de ma chaudière, l'idée m'est venue d'en tracer la courbe, pour jouer.
Je suis donc parti de cet extrait de script pour demander à Chatgpt de le remettre en forme,
{% if now().hour == 6 %} {{ 17 | float }} {% elif now().hour == 7 %} {{ 18 | float }} {% elif now().hour == 8 %} {{ 18 | float }} {% elif now().hour == 9 %} {{ 18 | float }} {% elif now().hour == 10 %} {{ 18 | float }} {% elif now().hour == 11 %} {{ 18.5 | float }} {% elif now().hour == 12 %} {{ 18.5 | float }} {% elif now().hour == 13 %} {{ 19 | float }} {% elif now().hour == 14 %} {{ 18 | float }} {% elif now().hour == 15 %} {{ 18 | float }} {% elif now().hour == 16 %} {{ 18 | float }} {% elif now().hour == 17 %} {{ 18 | float }} {% elif now().hour == 18 %} {{ 18.5 | float }} {% elif now().hour == 19 %} {{ 19 | float }} {% elif now().hour == 20 %} {{ 19 | float }} {% elif now().hour == 21 %} {{ 19 | float }} {% elif now().hour == 22 %} {{ 18.5 | float }} {% elif now().hour == 23 %} {{ 10.0 | float }} {% endif %}
en lui ai demandant de le présenter proprement, ce qu'il a fait avec application,
6h : 17.0°C 7h : 18.0°C 8h : 18.0°C 9h : 18.0°C 10h : 18.0°C 11h : 18.5°C 12h : 18.5°C 13h : 19.0°C 14h : 18.0°C 15h : 18.0°C 16h : 18.0°C 17h : 18.0°C 18h : 18.5°C 19h : 19.0°C 20h : 19.0°C 21h : 19.0°C 22h : 18.5°C 23h : 10°C
Et enfin j'ai demandé une courbe, et il m'a généré ce script, qui marche très bien !
https://wiki.memoirevive79.mooo.com/images/8/84/Figure_1.png
import matplotlib.pyplot as plt # Heures et températures correspondantes heures = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23] temperatures = [17.0, 18.0, 18.0, 18.0, 18.0, 18.5, 18.5, 19.0, 18.0, 18.0, 18.0, 18.0, 18.5, 19.0, 19.0, 19.0, 18.5, 10.0] # Création du graphique avec des points en abscisse pour chaque heure entière plt.figure(figsize=(10, 6)) plt.plot(heures, temperatures, marker='o', linestyle='-', color='b') # Afficher un point pour chaque heure entière plt.xticks(range(min(heures), max(heures)+1)) # Ajout de titres et de labels plt.title('Variation de la température par heure') plt.xlabel('Heure') plt.ylabel('Température (°C)') # Affichage du graphique plt.grid(True) plt.tight_layout() plt.show()