Introduction au graphiques en Python avec matplotlib.pyplot

Parce que les graphiques c'est cool

a marqué ce sujet comme résolu.

Bonjour à tous,

J'ai commencé (il y a 18 heures) la rédaction d'un tutoriel dont l'intitulé est Introduction au graphiques en Python avec matplotlib.pyplot.

J'aimerai obtenir un maximum de retour sur celui-ci, sur le fond ainsi que sur la forme, afin de proposer en validation un texte de qualité.

Si vous êtes intéressé, cliquez ci-dessous

Merci d'avance pour votre aide

+0 -0

Pas mal du tout. :)

Je regrette simplement que tu te limites uniquement à matplolib. En effet, quand on trace des fonctions, c'est avec Numpy qu'on peut faire des trucs efficaces. Typiquement, pour tracer la fonction sinus,

1
2
3
4
5
6
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 2*np.pi, 0.01)
plt.plot(x, np.sin(x) )
plt.show()

Et inverse :

1
2
3
4
5
x2 = np.arange(0.01, 1, 0.01)
def un_sur(x):
    return np.array([1/i for i in x])
plt.plot(x2, unsur(x2), -x2, unsur(-x2) )
plt.show()

Ce n'est pas indispensable, mais ça rend matplotlib beaucoup plus confortable.

+1 -0

Merci pour ton retour.

C'est vrai, mais le but est simplement de présenter pyplot et de donner envie d'aller plus loin avec en faisant le lecteur faire quelque chose. Si je dois parler de numpy, il faudrait aussi le présenter non ? Sinon, je peux en conclusion rajouter un petit code avec numpy et dire que ça permet de faire ce qu'on a fait plus simplement (histoire de donner au lecteur l'envie de découvrir numpy).

+0 -0

En conclusion, ou bien un petit mot dans un encart. Quelque chose du genre « plot prend aussi les "array" de numpy, donc on peut faire "plt.plot(x, np.sin(x) )". ». Dire que ça existe, que ça simplifie la vie, sans le présenter explicitement.

Effectivement, en dire trop oblige à présenter Numpy, ce qui alourdirait.

+0 -0

Bonjour à tous !

La beta du tutoriel a été mise à jour.

Merci pour vos relectures

EDIT : J'ai quasiment fini, je pense. Il reste juste quelques fioritures.

Je n'ai pas lu attentivement mais en première lecture je dirais que tu oublie de préciser un truc important sur pylab : c'est une machine a état. Ça a beaucoup d'importance sur la façon de l'utiliser.

Kje

Tu penses que ça vaut la peine de le préciser ? Pour une introduction et surtout pour ce que j'en fais, ce n'est pas obligatoire. Il ne vaut pas mieux laisser le lecteur aller visiter la documentation si le tutoriel l'a intéressé ?

+0 -0

Je pense que c'est important de le préciser. J'ai déjà répondu à des questions sur pylab ici même qui se résolvent d'elles même quand tu sais que c'est une machine à état. Je pense qu'au moins en conclusion c'est important pour que les lecteurs puissent comprendre quand appliquer une fonction qu'ils trouveraient dans la doc.

Écrire « c'est une machine à état » ne sert que si tes lecteurs savent ce que c'est. Je ne sais pas ce que c'est, et Wikipédia est d'une clarté rare ⸮ Surtout, je ne vois absolument pas le rapport avec matplotlib. Je ne dis pas qu'il ne faut pas le mettre, mais il faut au minimum un lien vers un truc intelligible pour le commun des mortels.

+0 -0

Quelques remarques :

Dans la partie matplotlib.pyplot, le module qu'il nous faut il serait peut être interessant de faire remarquer que ce module est très fortement inspiré des fonctionnalités de graph de matlab (fonctionnement identique, même noms de fonctions, etc.) et que donc il est facile à utiliser pour les personnes connaissant matlab.

Dans Ouvrir une fenêtre, l'utilité de la fonction close n'est pas évidente dans ton commentaire :

La seconde commande, close sert tout simplement à fermer la fenêtre qui s'est ouverte avec show. Lorsque vous appuyez sur la croix de votre fenêtre, celle-ci se ferme bien évidemment, mais en rajoutant la commande close.

Il manquerait pas la fin de la phrase là ? Car il n'y nul besoin de la fonction close() pour que la fenetre se ferme. De plus il serait peut être intéréssant de préciser que la fonction show est bloquante (le script y est arreté tant que le fenetre n'est pas fermé)

Dans Tracer des lignes brisées on a du mal à comprendre comment la fonction plot reagi à une liste en paramètre, quel est la logique sur les points qu'elle trace. Il faudrait peut être précisé qu'on fixe dans ce cas uniquement les ordonnées et que les abscisses sont automatiquement généré de 0 à N.

Dans Tracer une figure, avant dernier paragraphe, il y a un apostrophe qui traine dans la commande show.

Dans Les axes, quand tu essais de tracer un carré, il manque une fermeture de parenthese ligne 6 du deuxieme bloc de code.

En note final :

  • Il manque encore les images pour se donner une idée du rendu final
  • Note qu'il sera probablement necessaire que tu fasse une mise à jour de ton tuto lors de la prochaine version de matplotlib. En effet la prochaine version sera normalement la 2.0 et si elle ne doit pas changer l'API, elle sera livré avec un nouveau jeux de couleurs par defaut (enfin diront certains).

Voila pour le moment. Bon courage, tu as fais le plus dur :)

Bonjour à tous !

La beta du tutoriel a été mise à jour.

Merci pour vos relectures

EDIT : merci à tous pour vos remarques. J'espère pouvoir l'envoyer en validation d'ici la fin de la semaine :)

+0 -0

Bonjour à tous !

La beta du tutoriel a été mise à jour.

Merci pour vos relectures

EDIT : C'est fait. Cette version a été envoyée en validation.

+0 -0

Typo : tu n'as pas fermé le mode math : « Traçons la courbe de la fonction inverse sur l'intervalle $[1, 10] des deux manières : »

Gabbro

Tu dis ça pile au moment où je l'ai remarqué dans une dernière correction des fautes :)

EDIT : et j'ai également fait d'autres corrections. Par exemple dans la dernière partie je dis qu'il est intéressant de pouvoir choisir le nombre de subdivisions mais en fait c'est le pas.

+0 -0

Bonjour les agrumes !

La bêta de votre tutoriel « Introduction aux graphiques en Python avec matplotlib.pyplot » a été mise à jour et coule sa pulpe à l'adresse suivante :

Je suis de retour pour vous jouer un mauvais tour présenter cette version du tutoriel et demander des avis sur la manière dont l’installation devrait être expliqué. Je me demande surtout quelle méthode expliquer et donc j’attends principalement des retours sur la manière dont vous avez réussi à installer matplotlib, sur les problèmes qu’elle peut poser…

Merci d'avance pour vos commentaires.

+0 -0

ALors quelques commentaires, vraiment rapidement :

  • Installation sous Linux : Pip peut suffire, il est très souvent installé par défaut (sudo pip install matplotlib pour une "debian-like") ou depuis les paquets de la distrib (sudo apt-get install python-matplotlib sous Ubuntu)
  • Paramètres supplémentaires : Dans ton exemple de fin tu n'utilise pas la grille qui est pourtant présenté plus haut.
  • Je suis sceptique sur l'idée de faire construire les graphs en montrant explicitement le pas. Je me demande si la partie "avec numpy" ne mériterait pas d'etre présenté avant et le "à la main" ensuite. Car dans la vrai vie c'est comme ça que l'on construit des courbes. C'est bien plus efficace.
  • Installation sous Linux : Pip peut suffire, il est très souvent installé par défaut (sudo pip install matplotlib pour une "debian-like") ou depuis les paquets de la distrib (sudo apt-get install python-matplotlib sous Ubuntu)

En effet, sur Debian/Ubuntu/Arch (et sûrement sur la plupart des distros) ça marche bien. Mais j’imagine qu’on peut quand même rencontrer des problèmes, non ?

  • Paramètres supplémentaires : Dans ton exemple de fin tu n'utilise pas la grille qui est pourtant présenté plus haut.

Est-ce qu’il faut vraiment le changer ? Je ne sais pas si c’est vraiment gênant.

  • Je suis sceptique sur l'idée de faire construire les graphs en montrant explicitement le pas. Je me demande si la partie "avec numpy" ne mériterait pas d'etre présenté avant et le "à la main" ensuite. Car dans la vrai vie c'est comme ça que l'on construit des courbes. C'est bien plus efficace.

Les deux se valent. L’avantage de ne pas présenter numpy avant est de pouvoir le mettre en facultatif. Si on présente la méthode avec numpy principalement, il faut que le lecteur connaisse numpy ce qui peut ne pas être le cas. Je pense que le mieux est de rajouter dans la conclusion qu’utiliser numpy pour ça est plus simple et plus efficace et que c’est celle qu’il faut privilégier (quitte à apprendre à utiliser numpy ?).

+0 -0

Bonjour,

La bêta du contenu « Introduction aux graphiques en Python avec matplotlib.pyplot » a été désactivée.

+0 -0
Ce sujet est verrouillé.