Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mooc-rr
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ec6c2d38b7cace4ce8fa0c82ca665c1e
mooc-rr
Commits
e1e25c03
Commit
e1e25c03
authored
Dec 10, 2021
by
ec6c2d38b7cace4ce8fa0c82ca665c1e
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Exo4 Module 2
parent
c0202bfd
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
81 additions
and
77 deletions
+81
-77
exercice_python_fr.org
module2/exo4/exercice_python_fr.org
+81
-77
No files found.
module2/exo4/exercice_python_fr.org
View file @
e1e25c03
#+TITLE: Votre titre
#+TITLE: Analyse des mots-clés de mon journal
#+AUTHOR: Votre nom
#+DATE: La date du jour
#+AUTHOR: GNIBGA Wedan Emmanuel
#+DATE: 09/12/2021r
#+LANGUAGE: fr
#+LANGUAGE: fr
# #+PROPERTY: header-args :eval never-export
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
* Quelques explications
Ce journal contient des relevés de temperature de la temperature de Canton de Bâle-Ville , Suisse
depuis le mois de novembre 2021.
Je suis essentiellement interessé par les conditions meteos dans ma recherche en energie renouvellable.
Ceci est un document org-mode avec quelques exemples de code
python. Une fois ouvert dans emacs, ce document peut aisément être
exporté au format HTML, PDF, et Office. Pour plus de détails sur
org-mode vous pouvez consulter https://orgmode.org/guide/.
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
* Mise en forme des données
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
Les données sont organisées sous forme date, minimum, maximum, a chaque ligne
récupérés et inclus dans un document final. Si vous ne souhaitez pas
On pourrait alors les exporter sous forme csv par le code python suivant
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
document.
Comme nous vous l'avons montré dans la vidéo, on inclue du code
python de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
#+begin_src python :results output :exports both
#+begin_src emacs-lisp :results silent :exports none
print("Hello world!")
(org-babel-do-load-languages
'org-babel-load-languages
'((python .t)))
(setq org-babel-python-command "python3")
#+end_src
#+end_src
#+RESULTS:
: Hello world!
Voici la même chose, mais avec une session python, donc une
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
~C-c C-c~).
#+begin_src python :results output :session :exports both
#+begin_src python :results output :session :exports both
import numpy
x=numpy.linspace(-15,15)
file = open('../../journal.org', 'r')
print(x)
csv_file=open('./journal.csv','w')
lines = file.readlines()
count = 0
for line in lines:
count=count+1
#print("Line: {}".format(line.strip()))
if line.strip() == "* Weather Data":
break
for line in lines[count:]:
csv_file.writelines(line)
file.close()
csv_file.close()
#+end_src
#+end_src
#+RESULTS:
#+RESULTS:
#+begin_example
[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041
-11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592
-8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143
* statistics de base.
-5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694
Nous allons determiner les jours pour lesquels on a besoin de refroidir les installations.
-2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245
(temperature moyenne > 12°)
0.30612245 0.91836735 1.53061224 2.14285714 2.75510204
3.36734694 3.97959184 4.59183673 5.20408163 5.81632653
#+begin_src python :results output :exports both
6.42857143 7.04081633 7.65306122 8.26530612 8.87755102
9.48979592 10.10204082 10.71428571 11.32653061 11.93877551
csv_file=open('./journal.csv','r')
12.55102041 13.16326531 13.7755102 14.3877551 15. ]
cooling_date=[]
#+end_example
non_cooling_date=[]
Et enfin, voici un exemple de sortie graphique:
lines = csv_file.readlines()
#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results
for line in lines[1:]:
import matplotlib.pyplot as plt
line_tmp = (line.strip()).split(',')
if len(line_tmp) > 0 :
plt.figure(figsize=(10,5))
if (float(line_tmp[1])+float(line_tmp[2]))/2 > 12:
plt.plot(x,numpy.cos(x)/x)
cooling_date.append(line_tmp[0])
plt.tight_layout()
else :
non_cooling_date.append(line_tmp[0])
plt.savefig(matplot_lib_filename)
print("Dates necesittant du refroidissement {} \n".format(cooling_date))
print(matplot_lib_filename)
print("\n Date non necesitant du refroidissement {}" .format(non_cooling_date))
csv_file.close()
#+end_src
#+end_src
#+RESULTS:
#+RESULTS:
[[file:./cosxsx.png]]
Vous remarquerez le paramètre ~:exports results~ qui indique que le code
* Representation graphique
ne doit pas apparaître dans la version finale du document. Nous vous
NOus allons representer à l'aide de traits :
recommandons dans le cadre de ce MOOC de ne pas changer ce paramètre
- En rouge les, dates auquelles on aura besoin de refroidissement et en bleu, celles auquelles on n'en aura pas besoin
(indiquer ~both~) car l'objectif est que vos analyses de données soient
parfaitement transparentes pour être reproductibles.
#+begin_src python :results silent :session :exports results
plt.ylim(0,16)
Attention, la figure ainsi générée n'est pas stockée dans le document
fig=plt.figure()
org. C'est un fichier ordinaire, ici nommé ~cosxsx.png~. N'oubliez pas
ax1 = plt.subplot(2,1,1)
de le committer si vous voulez que votre analyse soit lisible et
for idx,date in enumerate(cooling_date):
compréhensible sur GitLab.
plt.bar((str(date))[5:],cooling_weather[idx],align='center',facecolor='red', edgecolor='red', width=0.01)
Enfin, n'oubliez pas que nous vous fournissons dans les ressources de
ax2 = plt.subplot(2,1,2)
ce MOOC une configuration avec un certain nombre de raccourcis
for idx,date in enumerate(non_cooling_date):
claviers permettant de créer rapidement les blocs de code python (en
plt.bar((str(date))[5:],non_cooling_weather[idx],align='center',facecolor='blue', edgecolor='blue', width=0.01)
faisant ~<p~, ~<P~ ou ~<PP~ suivi de ~Tab~).
fig.savefig("./weather.png")
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
#+end_src
informations et les remplacer par votre document computationnel.
[[file:./weather.png]]
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment