Main

Main.TutoPythonAff History

Hide minor edits - Show changes to output

June 26, 2017, at 10:54 AM EST by 132.227.202.156 -
Added lines 91-93:
Pour aller encore plus loin dans les interactions: [[Main.TutoPythonAffCallBack|lien]]

Deleted line 109:
Pour aller encore plus loin dans les interactions: [[Main.TutoPythonAffCallBack|lien]]
June 26, 2017, at 10:53 AM EST by 132.227.202.156 -
June 26, 2017, at 10:53 AM EST by 132.227.202.156 -
Changed lines 107-109 from:

!!!
Histogramme
to:
Pour aller encore plus loin dans les interactions: [[Main.TutoPythonAffCallBack|lien]]

!!!%part%
Histogramme
Changed line 118 from:
!!! Sauvegarder la figure courante
to:
!!!%part% Sauvegarder la figure courante
June 26, 2017, at 10:42 AM EST by 132.227.202.156 -
Changed lines 77-80 from:
%width=300px% Attach:res3.png

Pour aller plus loin avec les nuages de points:
to:
%width=300px% Attach:res7.png

Pour aller plus loin avec les nuages de points (tailles des points, couleurs des points,...):
Changed lines 84-85 from:
pl.savefig("tuto_fig_5.png")
to:
Deleted line 86:
pl.savefig("tuto_fig_6.png")
June 26, 2017, at 10:38 AM EST by 132.227.202.156 -
Changed lines 77-91 from:
to:
%width=300px% Attach:res3.png

Pour aller plus loin avec les nuages de points:

(:source lang=python:)
pl.figure()              # creation d'une figure
pl.scatter(x,yb, 20 - (y-yb)**2) # jouer avec le rayon des points du nuage
pl.savefig("tuto_fig_5.png")

pl.figure()              # creation d'une figure
pl.scatter(x,yb, c = np.abs(y-yb )) # jouer avec les couleurs des points du nuage
pl.savefig("tuto_fig_6.png")
(:sourceend:)

%width=300px% Attach:res4.png  Attach:res5.png
June 26, 2017, at 10:35 AM EST by 132.227.202.156 -
Changed lines 69-71 from:
x = np.linspace(0,10,20 # 20 points entre 0 et 10
y =
x*x + 2*x + np.random.randn(x)           # fct + bruit
to:
x = np.linspace(0,5,50)
y = x*x + 2*x
yb = y + np.random.randn(
x.shape[0]) *3            # la fonction a tracer
Changed line 74 from:
pl.plot(x,y, '+')
to:
pl.plot(x,yb, '+')   # simple ajout d'une fonction de style
Changed line 160 from:
(:sourceend:)
to:
(:sourceend:)
June 26, 2017, at 10:31 AM EST by 132.227.202.156 -
Changed lines 7-8 from:
!!!%part% Affichage d'une liste de coordonnées (x,y)
to:
!!!%part% Affichage d'une liste de coordonnées : courbes (x,y)
Added lines 63-75:

!!!%part% Affichage d'un nuage de points

Les données ont la même forme que précédemment, mais on souhaite afficher un nuage de point

(:source lang=python:)
x = np.linspace(0,10,20)  # 20 points entre 0 et 10
y = x*x + 2*x + np.random.randn(x)            # fct + bruit

pl.figure()              # creation d'une figure
pl.plot(x,y, '+')
(:sourceend:)

June 26, 2017, at 10:18 AM EST by 132.227.202.156 -
Changed lines 98-100 from:
>>block bgcolor=#ffbbbb <<
!!! Affichage sur des données INSEE sur le salaire en fonction du diplôme et du sexe
to:
!!!%exo% Affichage sur des données INSEE sur le salaire en fonction du diplôme et du sexe
Deleted line 146:
>><<
June 26, 2017, at 10:11 AM EST by 132.227.202.156 -
Changed line 70 from:
C = np.random.rand(300,200) # grosse matrice
to:
C = np.random.rand(5,10) # grosse matrice
Changed line 72 from:
pl.imshow(C)                # affichage sour forme d'image
to:
pl.imshow(C, interpolation='nearest')                # affichage sour forme d'image
Added lines 77-79:


%width=300px% Attach:res3.png
June 26, 2017, at 10:07 AM EST by 132.227.202.156 -
Changed lines 42-43 from:
Puis affichage de plusieurs courbes juxtaposées:
to:
* Par défaut les courbes se superposent (si on trace plusieurs choses dans la même fenêtre)
* Plusieurs fenêtres = plusieurs appels à @@pl.figure()@@


Puis affichage de plusieurs courbes
juxtaposées dans une fenêtre:
Changed line 62 from:
Par défaut les courbes se superposent (si on trace plusieurs choses dans la même fenêtre
to:
%width=300px% Attach:res2.png
June 23, 2017, at 05:06 PM EST by 132.227.202.156 -
Changed line 61 from:
!!! Affichage d'une matrice
to:
!!!%part% Affichage d'une matrice
June 23, 2017, at 04:29 PM EST by 132.227.202.156 -
Changed line 42 from:
Puis affichage des courbes :
to:
Puis affichage de plusieurs courbes juxtaposées:
June 23, 2017, at 04:29 PM EST by 132.227.202.156 -
Changed line 40 from:
%center, width=300px% Attach:res1.png
to:
%width=300px% Attach:res1.png
June 23, 2017, at 04:29 PM EST by 132.227.202.156 -
Changed line 40 from:
%center% Attach:res1.png
to:
%center, width=300px% Attach:res1.png
June 23, 2017, at 04:26 PM EST by 132.227.202.156 -
Changed lines 31-40 from:
to:
  y1
  Out[25]:
  array([  0.        ,    1.32963989,    3.2132964 ,    5.65096953,
          8.64265928,  12.18836565,  16.28808864,  20.94182825,
        26.14958449,  31.91135734,  38.22714681,  45.09695291,
        52.52077562,  60.49861496,  69.03047091,  78.11634349,
        87.75623269,  97.9501385 ,  108.69806094,  120.        ])

Résultat:
%center% Attach:res1.png
June 23, 2017, at 04:25 PM EST by 132.227.202.156 -
Added lines 14-19:

import matplotlib.pyplot as pl

pl.figure()              # creation d'une figure
pl.plot(x,y1)
pl.plot(x,y2)
Added lines 21-31:


Avec
  x
  Out[23]:
  array([  0.        ,  0.52631579,  1.05263158,  1.57894737,
        2.10526316,  2.63157895,  3.15789474,  3.68421053,
        4.21052632,  4.73684211,  5.26315789,  5.78947368,
        6.31578947,  6.84210526,  7.36842105,  7.89473684,
        8.42105263,  8.94736842,  9.47368421,  10.        ])

June 23, 2017, at 04:22 PM EST by 132.227.202.156 -
Added lines 1-3:
%define=part apply=block bgcolor=#e6d8c0%
%define=exo apply=block bgcolor=#ffbbbb%

Changed line 7 from:
!!! Affichage d'une liste de coordonnées
to:
!!!%part% Affichage d'une liste de coordonnées (x,y)
Changed lines 107-108 from:
p.set_xticks(np.arange(data.shape[0]))
lab = p.set_xticklabels(diplomes)
to:
p.set_xticks(np.arange(data.shape[0])) # où positionner les étiquettes
lab =
p.set_xticklabels(diplomes) 
Changed line 110 from:
plt.setp(lab, rotation=45, fontsize=10)
to:
plt.setp(lab, rotation=45, fontsize=10) 
Changed lines 99-111 from:
* Modifier l'axe des @@x@@ pour afficher le diplôme
to:
* Modifier l'axe des @@x@@ pour afficher le diplôme (il suffit de suivre le code ci-dessous)

(:source lang=python:)
fig = plt.figure() # astuce: récupération d'un pointeur pour pouvoir modifier
p = fig.add_subplot(111)
[...]
diplomes = ["Aucun", "BEPC", "CAP/BEP", "Bac", "IUT, BTS, DEUG", ">Bac+2", "Master/Phd", "Ecole Ing/com"]

p.set_xticks(np.arange(data.shape[0]))
lab = p.set_xticklabels(diplomes)
plt.xlabel(U"Diplome", fontsize=20)
plt.setp(lab, rotation=45, fontsize=10)
(:sourceend:)
Changed lines 93-94 from:
* A l'aide de la méthode @@scatter@@, tracer les salaires moyens en fonction des diplômes pour:
to:
* A l'aide de la méthode @@scatter@@, tracer les salaires moyens en fonction des diplômes pour:\\
NB: dans un premier temps, on trace le salaire en fonction de l'indice de ligne
Changed lines 98-99 from:
to:
* Ajouter des titres sur les axes (@@xlabel@@, @@ylabel@@)
* Modifier l'axe des @@x@@ pour afficher le diplôme
Added lines 83-96:

Chargement des données:
(:source lang=python:)
import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt("dataSalaire.csv", delimiter=';')
(:sourceend:)

'''Questions'''
* A l'aide de la méthode @@scatter@@, tracer les salaires moyens en fonction des diplômes pour:
** L'ensemble de la population (en vert)
** Les femmes (en rose)
** Les hommes (en bleu)
Added line 68:
Changed lines 65-81 from:
Données brutes disponibles [[http://www.insee.fr/fr/ppp/bases-de-donnees/irweb/irsocess10/dd/excel/irsocess10_HT_T5.xls|ici]
to:
Données brutes disponibles [[http://www.insee.fr/fr/ppp/bases-de-donnees/irweb/irsocess10/dd/excel/irsocess10_HT_T5.xls|ici]]

Données mises en forme: [[(Attach:) salaire2010INSEE.csv|ici]]
Correspondances des lignes:
*Aucun ou Certificat d’études primaires
*Brevet des collèges
*CAP ou BEP
*Baccalauréat
*IUT, BTS, diplôme de 1er cycle universitaire (DEUG, L1, L2) ou diplôme équivalent
*Diplôme supérieur à Baccalauréat +2
*Diplôme de 2ème ou 3ème cycle universitaire
*Diplôme d'une grande école (ingénieur, commerce)

Correspondances des colonnes:
* Moyenne des heures travaillées
* Salaire horaire
* 2 colonnes répétées 3 fois: Ensemble, Femmes, Homme
Deleted line 0:
Changed lines 60-67 from:
(:sourceend:)
to:
(:sourceend:)

>>block bgcolor=#ffbbbb <<
!!! Affichage sur des données INSEE sur le salaire en fonction du diplôme et du sexe

Données brutes disponibles [[http://www.insee.fr/fr/ppp/bases-de-donnees/irweb/irsocess10/dd/excel/irsocess10_HT_T5.xls|ici]

>><<
Added lines 1-61:

!![[Main.TutoPython|Retour vers le tutoriel complet]]


!!! Affichage d'une liste de coordonnées

Soit des vecteurs @@x@@ et @@y@@ de même tailles, par exemple:
(:source lang=python:)
x = np.linspace(0,10,20)  # 20 points entre 0 et 10
y1 = x*x + 2*x            # la fonction a tracer
y2 = np.sqrt(x)            # la fonction a tracer
(:sourceend:)

Puis affichage des courbes :

(:source lang=python:)
import matplotlib.pyplot as pl

pl.figure()              # creation d'une figure
pl.subplot(1,2,1)        # division de la fenetre en une matrice 1x2
pl.plot(x,y1,'g--', label='$y = x^2+2x$')
                          # affichage de la courbe + style + etiquette
pl.legend(loc=0)
pl.subplot(1,2,2)
pl.plot(x,y2, 'r*-', label='$y = \sqrt{x}$')
pl.legend(loc=2)          # affichage de la légende en haut a gauche
pl.show()                # affichage de la fenetre
(:sourceend:)

Par défaut les courbes se superposent (si on trace plusieurs choses dans la même fenêtre


!!! Affichage d'une matrice

Les grosses matrices (au delà de 20x20) sont difficiles à "explorer"... Une solution consiste à les afficher dans une figure pour étudier leur allure générale:

(:source lang=python:)
C = np.random.rand(300,200) # grosse matrice
pl.figure()
pl.imshow(C)                # affichage sour forme d'image
                            # les couleurs correspondent aux valeurs
pl.colorbar()              # legende
pl.show()
(:sourceend:)


!!! Histogramme

Fonction de gestion des histogrammes:

(:source lang=python:)
a = np.random.randn(1000)
pl.hist(a)                    # 10 catégories par défaut
(:sourceend:)

!!! Sauvegarder la figure courante

Vraiment très simple (et très utile pour les rapports)
(:source lang=python:)
savefig('foo.pdf')
(:sourceend:)