Gnuplot 4.2 est disponible !

Posté par . Modéré par Nÿco.
Tags :
0
7
mar.
2007
Technologie
Gnuplot est un logiciel de tracé de données et de fonctions 2D et 3D. Son développement n'a pas débuté hier (1986 !) mais il continue d'évoluer lentement puisque la version 4.2 vient de sortir.

Traduction des nouveautés majeures de l'annonce officielle :
  • Les chaînes de caractères peuvent être lues et manipulées comme des données normales ;
  • Nouveau terminal interactif basé sur wxWidgets, pango et cairo ;
  • Nouveaux styles de tracés 2D : 'histogram' 'labels' 'image' 'rgbimage' ;
  • Nouveaux styles de tracés 3D : 'labels' 'vectors' 'image' 'rgbimage' ;
  • L'utilisateur peut contrôler les définitions de couleurs et l'usage de couleurs dans les tracés ;
  • Manipulation des fontes et mise en forme des textes améliorés ;
  • Nouvelle syntaxe pour manipuler les "string variables" et les "string functions" ;
  • Création de séquences de GIF animés ;
  • Support de UTF-8 et d'autres encodages "multi-octets" ;
  • Documentation et aide en japonais.
La licence utilisée date du début du projet. Elle est libre, bien que l'on ne puisse pas distribuer de version modifiée des sources, les modifications devant être distribuées sous forme de patchs. Voir la licence pour tous les détails.
  • # Viewer 3D

    Posté par (page perso) . Évalué à  7 .

    Gnuplot est un logiciel que j'ai pas mal utilisé. Il est en effet très pratique car facile depuis un script de généré le fichier gnuplot. J'ai l'impression qu'il peut maintenant tracer la surface 3D d'un champ de données qui ne serait pas positionné sur une grille en x, y et c'est très bien car lorsqu'on fait des mesures sur le terrain, on n'a pas toujours des points positionnés sur une grille régulière.

    Par contre, deux points qui sont peu pratique :

    - il manque un "viewer 3D" interactif. En gros, on pourrait prendre l'objet à la souris et le faire tourner en tout sens. C'est assez pratique au début pour trouver le bon point de vue. Par contre, je ne dis pas que c'est simple à faire car il faut bien gérer le texte associé...

    - gnuplot n'a jamais intégré (on alors je ne l'ai pas vu) la possibilité de faire des camenbert. Je sais, c'est pas productif les camenberts mais les décideurs adorent cela. Alors si je pouvais automatiser la production de camenbert, ce serait génial.

    Car il y a un point important avec gnuplot, c'est qu'il exporte en plein de format, dont un postscript propre (important pour l'impression), et lui aussi s'intègre très bien avec le formatteur de texte LaTeX.
    • [^] # Re: Viewer 3D

      Posté par . Évalué à  8 .

      - il manque un "viewer 3D" interactif..


      oui mais non : tu peux changer l'orientation de la vue à la souris... (déjà dans ma version 4.1 et sans doute avant).

      De plus, les param. de la vue en cours s'affichent en bas de la fenêtre pour pouvoir les intégrer dans ton script.
      • [^] # Re: Viewer 3D

        Posté par (page perso) . Évalué à  4 .

        Désolé, cela fait un bout de temps que je n'ai pas utilisé la dernière version. Je ne connaissait pas cette fonctionalité ni ne l'avait vu sur leur site web.
    • [^] # Re: Viewer 3D

      Posté par . Évalué à  3 .

      gnuplot n'a jamais intégré (on alors je ne l'ai pas vu) la possibilité de faire des camenbert.

      Pour faire ce genre de graph, ploticus marche très bien. Je l'utilise pour ma part pour automatiser la production de diagrammes de gantt.

      http://ploticus.sourceforge.net
    • [^] # et un camembert, un!

      Posté par . Évalué à  3 .

      >- gnuplot n'a jamais intégré (on alors je ne l'ai pas vu) la possibilité de faire des camenbert.

      C'est vrai, mais on peut faire sans, non? Voici un essai rapide que je viens de tester avec gnuplot 4.2.

      set polar
      set angles degrees
      set size square
      set key out
      set samples 1000
      unset border
      unset tics
      set style function filledcurves xy=0,0
      c(a,b,x)=(x<a)?0:(x>b)?0:1
      set trange [0:360]
      set xrange [-1:1]
      set yrange [-1:1]
      plot c(0,160,t),c(160,200,t),c(200,300,t),c(300,350,t),c(350,360,t)
    • [^] # Re: Viewer 3D

      Posté par . Évalué à  2 .


      J'ai l'impression qu'il peut maintenant tracer la surface 3D d'un champ de données qui ne serait pas positionné sur une grille en x, y

      C'est avec quoi que tu fais ça ?

      Par ailleurs, est-ce que gnuplot peut maintenant faire des barres 3D ? Je ne sais pas si 'barre' est le bon terme, mais ayant des coordonnées x et y quelconques (pas sur une grille), je cherche à tracer à ces coordonnées des parallélépipèdes de hauteur z (en gros des immeubles de hauteur choisie à des coordonnées choisies).
      Je me demande si le mode 'vectors' va (enfin) me permettre de faire ça.
  • # Interface ?

    Posté par . Évalué à  4 .

    Perso, je souhaiterais un truc plus convivial quand même...

    Car on est encore loin de Graphpad, au moins pour la génération de graph 2D, en termes de convivialité.

    Enfin, c'est juste un petit avis... :D
    • [^] # Re: Interface ?

      Posté par (page perso) . Évalué à  8 .

      Pour m'être mis à gnuplot récemment: il a les mêmes défauts que plein d'autres logiciels: gdb, vi, emacs... Tu es obligé d'apprendre à chaque fois un nouveau langage, une nouvelle syntaxe avant de pouvoir l'utiliser, et c'est franchement ch*iant. Impossible de trouver une IHM digne de ce nom pour utiliser gnuplot au clickodrome. On a beau être geek, un peu d'intuitivité n'a jamais fait de mal à personne.
      • [^] # Re: Interface ?

        Posté par . Évalué à  4 .

        Si c'est pour faire des graphiques pas trop compliqués (fonctions ou séries de données), il y a qalculate (http://qalculate.sourceforge.net ), qui en plus d'être une excellente calculatrice scientifique, permet à partir de son interface de traçer des graphes avec gnuplot.
        • [^] # Re: Interface ?

          Posté par (page perso) . Évalué à  5 .

          En fait c'était pour l'exploitation de données expérimentales (courbe d'intensité lumineuse), je ne produis aucun calcul. Mais merci quand même, ça servira peut être à quelqu'un.
          PS: apparemment, qalculate a le bon goût d'être dispo sous Mandriva 2007, avec un fontend GTK (qalculate-gtk) et un frontend KDE (qalculate-kde).
      • [^] # Re: Interface ?

        Posté par . Évalué à  5 .

        gnuplot en interactif n'est pas convivial, c'est vrai, mais gnuplot c'est surtout utile quand tu l'appelle automatiquement depuis un programme.
        La plupart des programmes qui ne sont pas user-friendly sont en fait très puissant quand on les utilisent dans des scripts.
        • [^] # Re: Interface ?

          Posté par (page perso) . Évalué à  3 .

          Là je suis assez d'accord avec toi. Pourtant je pense que demander à l'utilisateur novice de connaitre un langage en fait destiné aux experts de l'outil est une erreur...
      • [^] # Re: Interface ?

        Posté par . Évalué à  5 .

        ben regarde du cote de grace

        http://soc.if.usp.br/doc/grace/

        bon petit probleme c'est moche (motif oblige) et c'est pas hyper maintenu...

        sinon faut regarder du cote de matplotlib pour ne pas avoir a reapprendre un lange pour ceux qui font du python:

        http://matplotlib.sourceforge.net/

        mais pas de clickodrome (pour le moment)

        et de chaco (pas encore sorti officielement mais qui peut etre pas interessant)

        http://code.enthought.com/chaco/
        • [^] # Re: Interface ?

          Posté par . Évalué à  3 .

          Voir aussi http://wiki.debian.org/DebianScienceDataPlotting
          (C'est pour Debian, mais ça reste valable pour les autres distributions.)

          Pour le côté convivial de gnuplot, je n'ai jamais rien vu de plus convivial que
          plot "datafile"
          et
          plot sin(x)
          mais les goûts et les couleurs ...
          • [^] # Re: Interface ?

            Posté par . Évalué à  6 .

            ce que je reproche essentiellement a gnuplot (mais en meme temps c'est une de ses forces je crois) c'est que cela utilise sa propre syntaxe et n'est lie a aucun autre langage. Du coup il faut faire les scripts gnuplot a part. J'aime bien (et c'est un choix tout personnel) melanger mes calculs et l'affichage de mes resultats du coup je prefere les trucs tel que pgplot pour le fortran ou matplotlib pour le python.
        • [^] # Re: Interface ?

          Posté par . Évalué à  2 .

          sinon, je ne saurais que trop te recommander :

          Veusz : écrit en Python Qt4 maintenant ; http://home.gna.org/veusz/

          Hippodraw : excellent, mais vraiment fait pour un type d'analyse de données particulière (à base d'histogrammes sur des données multidimensionnelles); écrit en Qt, mais avec des bindings python. http://www.slac.stanford.edu/grp/ek/hippodraw/

          Ce sont vraiment 2 logiciels à regarder de près.

          David
          • [^] # Re: Interface ?

            Posté par . Évalué à  2 .

            Ah effectivement, Veusz a l'air intéressant.
            Faut que je teste ça.

            Merci pour l'info.
  • # Et pourquoi pas une libgnuplot ?

    Posté par . Évalué à  3 .

    Ainsi il serait facile d'intégrer de beau graphiques dans toute sorte d'applications et ne plus passer par des pipes pour tracer deux trois courbes.
    En plus il serait plus simple de faire une interface graphique par dessus.

    J'ai l'impression qu'il manque une bonne librairie pour tracer des graphs dans le monde du libre.

    Je l'imagine basée sur cairo ou autre et qui reprend tous les types de graphiques généré par gnuplot. Ensuite il faudrait que cairo (ou autre) puisse exporter vers autant de terminaux que gnuplot. En effet une des grand force de Gnuplot c'est de pouvoir faire du metapost (pour intégration dans latex), du xfig etc...

    bonne journée
    • [^] # Re: Et pourquoi pas une libgnuplot ?

      Posté par . Évalué à  5 .

      J'ai l'impression qu'il manque une bonne librairie pour tracer des graphs dans le monde du libre.

      Très bonne remarque. Je suis de ceux qui aimeraient voir gnuplot devenir aussi une librairie. Il y a bien Qwt (C++) et matplotlib (python), mais si on avait une vraie librairie en C, on pourrait imaginer des bindings vers n'importe quel langage.

      Voici le statut actuel des choses:
      * le problème majeur est d'extraire une API du code de gnuplot. Actuellement, le 'parser' (analyseur lexical/syntaxique) de gnuplot est complètement mélangé au reste du code. Il faudrait séparer tout ce petit monde en deux couches distinctes, la première étant l'interface utilisateur, la deuxième étant accessible en tant que librairie "standard", via des commandes du genre:

      gnuplot_crerate_context(...);
      gnuplot_set_borders(...);
      gnuplot_set_pm3d(...);
      gnuplot_plot(data);

      * un deuxième problème est la séparation entre les fonctions de plot et de lecture des fichiers de données. Gnuplot est très fort pour lire des fichiers formatés en colonne, avec des séparateurs variés, ou en matrice (sans abscisses ni ordonées explicites), ou encore avec des dates/heures. Heureusement, cette partie du code est déjà relativement séparée du reste.

      * enfin, pour ce qui est de l'export graphique, je suis d'avis qu'il faut garder la plupart des terminaux gnuplot comme ils sont : latex, metapost, gd (gif, png, jpeg) et cairo (svg, postscript, pdf, mais Xlib, Win32, Quartz). La bonne nouvelle est que tout ce code existe déjà ! Gnuplot 4.2 utilise cairo pour le terminal interactif 'wxt', un patch est en développement pour exporter en pdf avec (et ce patch est minuscule comparé au code déstiné à cairo déjà dans gnuplot, c'est la force de cairo), et il serait relativement simple de l'étendre sous forme de librairie pour que gnuplot exporte vers n'ilmporte quelle surface que gnuplot sait gérer.

      Il ya donc du travail, mais rien n'est impossible. S'il y a des volontaires, au passage...
      • [^] # Re: Et pourquoi pas une libgnuplot ?

        Posté par . Évalué à  1 .

        La licence de gnuplot étant ce qu'elle est, une telle librairie aurait du mal à être utilisée dans d'autres projets, non? (Evidemment pour une utilisation dans de petits projets personnels, pas de problème.) La communication par pipe est un bon moyen de s'affranchir des problèmes de licence ...

        En tout cas, merci pour wxt!

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.