web-dev-qa-db-fra.com

Petit guide comment utiliser gnuplot avec python?

J'essaie de dessiner un graphique en Python, en utilisant Gnuplot. J'ai du mal à trouver des guides/tutoriels pour commencer.

Ce que je me demande: quels fichiers/programmes sont nécessaires (j'utilise Ubuntu), par où commencer?

Si quelqu'un pouvait recommander un bon tutoriel, ce serait très apprécié!

Je vous remercie!

19
Fredrik Nylund

Vous pouvez essayer gnuplot.py . C'est une interface avec gnuplot que j'ai utilisée dans le passé. Dans le site Web, vous avez quelques indications et il y a des exemples de scripts dans la distribution.

En fait, il est très facile d'exécuter directement gnuplot à partir de python. Le code source gnuplot.py vous donnera de précieux conseils. Voir aussi ici et ici pour d'autres alternatives.

Comme d'autres le recommandent, l'alternative consiste à utiliser matplotlib. Matplotlib est génial et je l'utilise comme ma bibliothèque de visualisation principale. L'inconvénient est que travailler avec un grand nombre de données peut devenir lent. gnuplot dans ce cas est une bonne option.

13
joaquin

Votre approche dépend de ce que vous avez déjà et de ce avec quoi vous voulez travailler. Pour tracer un graphique avec gnuplot, vous avez besoin de deux choses:

  1. Un script gnuplot, qui décrit à quoi devrait ressembler le tracé résultant (titre, description de l'axe, légende ...)
  2. Un fichier de données, qui contient les données que vous souhaitez tracer

Si vous avez déjà disons le fichier de script gnuplot et que vous voulez simplement écrire de nouveaux fichiers de données en python, alors cette approche est valable dans mon option. Exportez simplement les données au format spécifié que vous avez utilisé dans vos fichiers de données avant et exécutez gnuplot à partir de python avec quelque chose comme

import os
import subprocess
p = subprocess.Popen("gnuplot <scriptname>", Shell = True)
os.waitpid(p.pid, 0)

N'oubliez pas que vous devrez peut-être modifier le chemin d'accès au fichier de données dans votre script gnuplot si vous écrivez de nouveaux fichiers de données. Donc quelque chose comme ça:

plot "<path>" ...

Si vous n'avez pas encore de script gnuplot que vous souhaitez utiliser, vous pouvez certainement en écrire un et l'utiliser à partir de maintenant, mais en utilisant python il y a aussi d'autres alternatives.

Vous pouvez jeter un œil à matplotlib qui est une bibliothèque de traçage très similaire dans la manière dont Matlab utilise la commande plot. Il est très bien documenté et il existe de nombreux tutoriels et exemples en ligne sur lesquels vous pouvez apprendre et travailler.

9
Woltan

En tant que fan de gnuplot, j'utilise ce wrapper gnuplot https://github.com/mzechmeister/python/wiki/gplot.py .

Voici un extrait de démo

from gplot import *

gplot.term('wxt')
gplot.title('"gplot.py"').grid()
gplot.xlabel('"time"')
gplot([1,2,0,4,3.5], 'w l, sin(x), "<seq 10" us 1:(cos($1))')

0
Friedrich