Changer la taille de la police dans la légende (matplotlib)

Pour changer la taille de la police dans une légende sous matplotlib il suffit d'ajouter le mot clé "prop" (i.e. plt.legend(prop={'size':12}) dans la fonction pyplot: [legend](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.legend) comme dans cette exemple [image:448 size:100 caption:Changer la taille de la police dans la légende sous matplotlib (Exemple avec plt.legend())] [image:449 size:100 caption:Changer la taille de la police dans la légende sous matplotlib (Exemple avec pl

Boucle simultanée sur 2 ou plusieurs listes en python

Avec python il est possible de faire une boucle simultanée sur 2 ou plusieurs listes en même temps avec la fonction [zip](https://docs.python.org/2/library/functions.html#zip). Exemple basique d'utilisation: >>> a = [1,7,2] >>> b = [8,9,4] >>> for i,j in zip(a,b): ... print i,j ... 1 8 7 9 2 4 >>> c = [121,143,876] >>> for i,j,k in zip(a,b,c): ... print i,j,k ... 1 8 121 7 9 143 2 4 876 ### Recherches associées Liens | Sit

Comment avoir la colorbar de la même taille que la figure avec matplotlib ?

Exemple de comment ajuster la taille de la colorbar à la figure avec matplotlib : [TOC] ### Colorbar de meme taille que la figure avec matplotlib Un problème récurrent avec matplotlib est de vouloir adapter la taille de la colorbar au graphique comme dans l'exemple ci-dessous: [image:446 size:50 caption:Adapter la taille de la colorbar au graphique (matplotlib) (1/2)] import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import make_axes_locatable import numpy as np

Limiter le nombre de requêtes avec Django

Considérons le cas où on veut, par exemple, avec django seulement afficher les 10 derniers membres inscrits sur notre site. Pour cela, il est intéressant de pourvoir limiter le nombre de requêtes. Dans ce cas, il suffit d'ajouter à la fin de la requête [:10] comme dans cet [exemple](http://stackoverflow.com/questions/6574003/django-limiting-query-results) (dans le fichier views.py): User.objects.all().order_by('-id')[:10] ### Recherches associées Liens | Site ------------- | ---

Message d'erreur ou informatif dans le HTML avec Django

Avec Django il est possible de mettre automatiquement des [messages](https://docs.djangoproject.com/en/dev/ref/contrib/messages/)d'erreurs/informatifs dans le template html. Considérons un exemple simple: on souhaite mettre un message dans le html si quelque chose ne s'est pas bien passé en voulant afficher la page. Pour cela, dans le fichier views.py il suffit d'ajouter, au minimum, les quelques lignes suivantes: [image:444 size:100 caption:Figure 1: Message d'erreur ou informatif dans le HT

Trouver le plus grand élément dans une liste (python)

Avec python pour trouver la valeur maximum dans une liste de nombre il existe la fonction "build-in": max. Un exemple simple d'utilisation: >>> a = [3,8,3,5,9,1,4] >>> max(a) 9 Pour trouver l'indice (ou les indices sir la valeur maximum est présente plusieurs fois dans la liste) vous pouvez utiliser l'approche suivante: >>> a = [3,8,3,5,9,1,4] >>> m = max(a) >>> [i for i, j in enumerate(a) if j == m] [4] Note: dans le cas où la liste comprend des nombres et des

Générer un nombre aléatoire dans un intervalle donné (python)

Pour générer un nombre aléatoire avec python il existe le module [random](https://docs.python.org/2/library/random.html). Par exemple, si on veut générer un nombre entier aléatoire dans un intervalle donné [2,9] il faut utiliser la fonction randint comme ceci: >>> from random import randint >>> randint(2,9) 6 >>> for i in range(10): ... print randint(2,9) ... 2 9 2 9 9 7 4 5 3 6 Pour un nombre réel, il faut utiliser la fon

Concaténer deux matrices avec c_ (numpy)

L'instance de classe [c_](http://docs.scipy.org/doc/numpy/reference/generated/numpy.c_.html) est assez populaire sous numpy et permet rapidement de concaténer deux matrices sur le dernier axe. On utilise le plus souvent cette instance pour concaténer des matrices de dimension (n*1): >>> import numpy as np >>> a = np.array([5,2,1,7]) >>> b = np.array([9,0,8,6]) >>> c = np.c_[a,b] >>> c array([[5, 9], [2, 0], [1, 8], [7, 6]]) Un autre exe

Extraire le code RGB à partir d'une colormap de Matplotlib

Présentation du problème: On dispose par exemple d'un graphique réalisé avec matplotlib (dans notre exemple on a utilisé le code [suivant](http://scikit-learn.org/stable/auto_examples/svm/plot_separating_hyperplane.html) qui est un nuage de points avec deux classes de couleurs différentes) et on souhaite utiliser les mêmes couleurs pour construire un autre graphique comme un histogramme. Avec python et matplotlib il est relativement simple de récupérer le code RGB pour une colormap donnée ([voir

Ajuster les bords d'une figure Matplotlib

### Cas général [image:185 size:100 caption:Image No Tight Layout] [image:186 size:100 caption:Image With Tight Layout] #!/usr/bin/env python from numpy import * import numpy as np import matplotlib.pyplot as plt x = np.arange(10) h = [0,1,2,3,5,6,4,2,1,0] fig = plt.figure() plt.title('Title') plt.xlim(0, 10) plt.ylim(0, 8) plt.xlabel('x label') plt.ylabel('y label') bar1 = plt.bar(x,h,width=1.0,bottom=0,color='Green',alpha=0.65,label='Legend') plt.

Afficher une matrice avec des virgules comme séparateur entre les éléments (Numpy)

Quand on veut imprimer à l'écran une matrice avec 'print' on obtient une représentation de celle-ci relativement simple de type [[ 0 1 2 ]] avec les éléments séparés par des espaces. Si on veut afficher une matrice avec des virgules comme séparateur entre les éléments, il faut passer par [repr](https://docs.python.org/2/library/repr.html) ou [pprint](https://docs.python.org/2/library/pprint.html) comme dans cet exemple: import numpy as np import pprint m = np.arange(15).reshape((5, 3))

Estimation par noyau 2d (scipy + matplotlib)

Exemple d'estimation par noyau 2d utilisant scipy et matplotlib: [image:441 size:100 caption:Estimation par noyau 2d (scipy + matplotlib)] from scipy import stats, mgrid, c_, reshape, random, rot90 import numpy as np import matplotlib.pyplot as plt import matplotlib.cm as cm values = np.array([[ 0.04810362, 0.02606397], [ 0.21804558, 0.19724609], [ 0.02868612, 0.00172462], [ 0.40554094, 0.35376897], [ 0.43878371, 0.19474262], [ 0.37266064, 0.37235034],

Selection aléatoire d'un échantillon à partir d'un tableau de données sous Numpy

Dans cet article on va voir comment sélectionner aléatoirement un échantillon à partir de données stockées dans une matrice. Pour cela, supposons que les données sont dans une matrice m de dimension (5,2). Pour sélectionner aléatoirement les données il existe plusieurs possibilités ([voir](http://stackoverflow.com/questions/13335407/create-numpy-array-with-random-elements-from-list)), on va ici utiliser la méthode [random.shuffle](http://docs.scipy.org/doc/numpy/reference/generated/numpy.rand

Utiliser Matplotlib avec Django

### Figure Matplotlib avec Django **urls.py** url(r'^_Matplotlib/Bar/$', 'visualization.views.GraphsViewBar'), **views.py** [image:430 size:100 caption:Matplotlib avec Django (Exemple simple)] # -*- coding: utf-8 -*- from django.shortcuts import render_to_response from django.template import RequestContext from django.http import HttpResponseRedirect from wiki.models import Article, ArticleRevision, URLPath from django.http import HttpResponse from matplotlib.backends.back

Comment obtenir l'adresse IP d'un visiteur avec django ?

Exemple de comment obtenir l'adresse ip d'un visiteur sous django: [TOC] ### Obtenir l'adresse ip du visteur def visitor_ip_address(request): x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') if x_forwarded_for: ip = x_forwarded_for.split(',')[0] else: ip = request.META.get('REMOTE_ADDR') return ip ### Verifier si l'adresse ip est valide On peut ensuite vérifier si l'adresse ip est valide

Remplacer / Supprimer un mot dans une phrase en python

Pour remplacer / supprimer un mot dans une phrase en python il existe la méthode [replace](https://docs.python.org/2/library/string.html). Exemple: >>> s = 'Bonjour, comment ca va ?' >>> s = s.replace('Bonjour','Salut') >>> s 'Salut, comment ca va ?' >>> s = s.replace('Salut','') >>> s ', comment ca va ?' >>> s = 'Salut, comment ca va, Salut' >>> s = s.replace('Salut','') >>> s ', comment ca va, ' >>> ### Recherches associées Liens | Site ----

Comment barrer du texte en HTML

Pour barrer du texte en HTML il existe la balise: [del](http://www.w3schools.com/tags/tag_del.asp). Exemple: [image:436 size:100 caption:Comment barrer du texte en HTML] <!DOCTYPE html> <html> <body> Mon sport prefere est le <del>football</del>, tennis ! </body> </html> ### Recherches associées Liens | Site ------------- | ------------- [Balise del](http://www.w3schools.com/tags/tag_del.asp) | w3schools [del](https://developer.mozilla.org/fr/docs/Web/HTML/Element/del) | devel

Obtenir une liste des sous-répertoires en python

Avec python il est possible d'obtenir une liste des sous-répertoires composant un répertoire donné à l'aide de la méthode [walk](https://docs.python.org/2/library/os.html). A titre d'exemple considérons la configuration suivante: FolderRoot: -> F1: -> F11 -> F12 -> F2 -> F3 Si on se place au niveau du répertoire "FolderRoot" et qu'on lance python puis la commande [x[0] for x in os.walk('FolderRoot')] on obtient bien la liste de tous les ré

Formater un float dans un template sous Django

Avec Django il est possible d'envoyer des nombres de type float dans le template en passant par le fichier **views.py**. Cepdendant quand on affiche ces derniers dans le template le format n'est pas forcement celui souhaité. Par exemple, par défaut, on obtient des nombres avec une virgule et non par un point. Si on veut des nombres de type float avec un point pour séparer les chiffres et pas une virgule, il faut formater le nombre comme dabs cet exemple: Dans le fichier **views.py:** Nomb

Formulaire sans "model" associé avec Django

Avec Django, il est évidemment possible de mettre en place un formulaire sans être obligé de développer un "model" associé à celui-ci. En effet, il arrive souvent que l'on veuille mettre en place un formulaire sans vouloir stocker dans la base de données les informations envoyées par celui-ci. Ce cas de figure est bien expliqué dans la documentation de Django ([voir](https://docs.djangoproject.com/en/dev/topics/forms/)). Exemple simple de mise en pratique: **models.py**: [image:432 size:100 c

Vérifier si un fichier existe en Fortran

Pour vérifier si un fichier existe en Fortran il existe la fonction fortran [INQUIRE](http://docs.oracle.com/cd/E19957-01/805-4939/6j4m0vna3/index.html). Exemple d'utilisation avec un programme minimaliste en fortran 90 (test.f90): program test logical :: file_exists INQUIRE(FILE="inputs.txt", EXIST=file_exists) write(6,*) file_exists end Après compilation et exécution du code gfortran test.f90 -o test test on obtient F si le fichier inputs.txt n'exis

Ajouter du texte sur une figure Matplotlib

Pour ajouter du texte sur une figure Matplotlib il existe la méthode [matplotlib.pyplot.text](http://matplotlib.org/api/pyplot_api.html?highlight=figtext) qui accepte comme arguments de base (x,y,s) avec x l'abscisse, y l'ordonnée et s le texte (de type string). Exemple simple d'application (texte 'Hello World !' aux coordonnées (1,35)): [image:421 size:100 caption:Ajouter du texte sur une figure Matplotlib (Exemple 01)] #!/usr/bin/env python import numpy as np import matplotlib.pyplot a

Comment mettre l'axe des ordonnées en échelle logarithmique avec Matplotlib ?

Pour transformer un axe en échelle logarithmique sous Matplotlib, il existe les méthodes xscale et yscale dans la classe [pyplot](http://matplotlib.org/api/pyplot_api.html). Dans cet exemple l'axe des ordonnées est en échelle logarithmique grâce à la commande plt.yscale('log'): [TOC] ### Exemple 1 Prenons par exemple la fonction exponentielle: import matplotlib.pyplot as plt import numpy as np x_min = 0 x_max = 10.0 x = np.arange(x_min, x_max, .01) y = np.exp(x) p

Transformer du texte en song avec python ?

Pour transformer du texte en fichier audio (comme wav) avec python il est possible de passer par espeak (voir les références suivantes [espeak](http://espeak.sourceforge.net/) et le [thread](http://stackoverflow.com/questions/9900137/recording-synthesized-text-to-speech-to-a-file-in-python) de stackoverflow sur le sujet). Pour cela, il est nécessaire dans un premier temps de télécharger espeak en allant sur ce [lien](http://espeak.sourceforge.net/). Une fois espeak téléchargé il suffit alors de

Série temporelle avec matplotlib

Pour tracer une série temporelle avec matplotlib, le plus simple est de passer par [pandas](http://pandas.pydata.org/pandas-docs/version/0.13.1/visualization.html). Exemple simple: [image:415 size:100 caption:Série temporelle avec matplotlib et Pandas] import matplotlib.pyplot as plt import numpy as np import pandas as pd ts = pd.Series(np.random.randn(1000), \ index=pd.date_range('1/1/2000', \ periods=1000)) ts = ts.cumsum() ts.plot() plt.savefig('SerieTemporelle.pn