Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/03/2012, à 11:48

Autiwa

[Résolu] gnuplot donne des traits transversaux non désirés

Bonjour,

Avec gnuplot, je trace un graphique 2D et je superpose un tracé de contour particulier. Ça marche généralement bien, mais je viens de trouver quelque chose d'étrange avec le graphique suivant :
Graphique montrant des traits transversaux non désirés entre deux lignes verticales que je veux tracer.

Le fichier de contour est le suivant :

   4.4444444444444446        20.000000000000000        0.0000000000000000     
   4.4444444444444446        18.530872483331486        0.0000000000000000     
   4.4444444444444446        17.061744966662967        0.0000000000000000     
   4.4444444444444446        15.592617449994455        0.0000000000000000     
   4.4444444444444446        14.123489933325940        0.0000000000000000     
   4.4444444444444446        12.654362416657424        0.0000000000000000     
   4.4444444444444446        11.185234899988908        0.0000000000000000     
   4.4444444444444446        9.7161073833203950        0.0000000000000000     
   4.4444444444444446        8.2469798666518788        0.0000000000000000     
   4.4444444444444446        6.7778523499833652        0.0000000000000000     
   4.4444444444444446        5.3087248333148498        0.0000000000000000     
   4.4444444444444446        3.8395973166463349        0.0000000000000000     
   4.4444444444444446        2.3704697999778208        0.0000000000000000     
   4.4444444444444446       0.90134228330930599        0.0000000000000000     
   4.4444444444444446       0.76778523633944096        0.0000000000000000     
   4.4444444444444446       0.63422818936957603        0.0000000000000000     
   4.4444444444444446       0.50067114239971100        0.0000000000000000     
   4.4444444444444446       0.36711409542984608        0.0000000000000000     
   4.4444444444444446       0.23355704845998110        0.0000000000000000     
   4.4444444444444446       0.10000000149011612        0.0000000000000000     
 
   14.444444444444445        20.000000000000000        0.0000000000000000     
   14.444444444444445        18.530872483331486        0.0000000000000000     
   14.444444444444445        17.061744966662967        0.0000000000000000     
   14.444444444444445        15.592617449994455        0.0000000000000000     
   14.444444444444445        14.123489933325940        0.0000000000000000     
   14.444444444444445        12.654362416657424        0.0000000000000000     
   14.444444444444445        11.185234899988908        0.0000000000000000     
   14.444444444444445        9.7161073833203950        0.0000000000000000     
   14.444444444444445        8.2469798666518788        0.0000000000000000     
   14.444444444444445        6.7778523499833652        0.0000000000000000     
   14.444444444444445        5.3087248333148498        0.0000000000000000     
   14.444444444444445        3.8395973166463349        0.0000000000000000     
   14.444444444444445        2.3704697999778208        0.0000000000000000     
   14.444444444444445       0.90134228330930599        0.0000000000000000     
   14.444444444444445       0.76778523633944096        0.0000000000000000     
   14.444444444444445       0.63422818936957603        0.0000000000000000     
   14.444444444444445       0.50067114239971100        0.0000000000000000     
   14.444444444444445       0.36711409542984608        0.0000000000000000     
   14.444444444444445       0.23355704845998110        0.0000000000000000     
   14.444444444444445       0.10000000149011612        0.0000000000000000     

(je l'ai réduit, mais c'est le même principe, j'ai vérifié)

Le code utilisé pour le tracer avec gnuplot est :

 set terminal wxt enhanced
 set xlabel "semi major axis (AU)"
 set ylabel "Planet mass (m_{earth})" center
 set title "Evolution of the total torque {/Symbol G}_{tot}/{/Symbol G}_0 "
 set pm3d map
 set pm3d explicit
 set palette rgbformulae 22,13,-31
 set mxtics 5
 set mytics 5
 set grid xtics ytics mxtics mytics linetype -1, linetype 0
 set xrange [  9.99999977648258209E-003 :   15.000000000000000      ]
 set yrange [  0.10000000149011612      :   20.000000000000000      ]
 splot 'test_total_torque.dat' with pm3d notitle, \
       'contour_total_torque.dat' with line linetype -1 title '{/Symbol G}=0'

contour_total_torque.dat étant le fichier que j'ai recopié plus haut.

Je ne comprends pas pourquoi il me trace des traits horizontaux en plus des deux traits verticaux qu'il est censé tracer. Quelqu'un a une idée? De ce que j'ai compris jusqu'à présent, le fichier de contour doit être des suites de coordonnées (x,y) séparées par une ligne blanche pour séparer les différents traits. Je n'ai pas trouvé pourquoi ça fonctionnait parfaitement avec des contours bizarres et compliqués et pourquoi ça ne fonctionne pas dans ce cas où justement le contour est beaucoup plus simple. Quelqu'un a une idée?

Le cas échéant, quelqu'un saurait à qui je peux demander ou reporter l'éventuel bug? (Sur le site de gnuplot je n'ai pas trouvé de lien pour reporter des bugs, même s'il n'est pas certain que ce soit un bug, ça peut être un truc que j'ai pas compris)

Résolu :
Alors en fait, grâce à la répondu un peu plus bas, c'est un comportement normal de gnuplot quand deux lignes ont la même longueur. Ce n'est donc pas un bug.

Pour contourner ça, il suffit de séparer par deux lignes au lieu d'une (merci gl38)

Dernière modification par Autiwa (Le 28/03/2012, à 14:10)


Pensez à éditer le titre du sujet (en éditant le premier message) pour rajouter un "[Résolu]" ça évite à ceux qui veulent donner un coup de main, d'ouvrir un sujet où il n'y a plus d'aide à donner.

Hors ligne

#2 Le 28/03/2012, à 14:05

pingouinux

Re : [Résolu] gnuplot donne des traits transversaux non désirés

Bonjour,
J'ai fait quelques essais, et regardé la doc; ce comportement est normal si les séries de points ont la même longueur. Voici un extrait de la doc de gnuplot :

$ gnuplot
............
gnuplot> help splot datafile
............
 If all datablocks contain the same number of points, `gnuplot` will draw cross-isolines between datablocks,
 connecting corresponding points.

Hors ligne

#3 Le 28/03/2012, à 14:07

Autiwa

Re : [Résolu] gnuplot donne des traits transversaux non désirés

Aww. Merci d'avoir pris le temps de regarder. J'ai cherché un peu sur le net mais je ne savais pas trop à quelle commande je devais associer ça.

Je trouve ça stupide, parce que ça veut dire que je ne peux pas tracer deux lignes de la même longueur sans rien faire entre les deux.

Merci de ton aide.


Pensez à éditer le titre du sujet (en éditant le premier message) pour rajouter un "[Résolu]" ça évite à ceux qui veulent donner un coup de main, d'ouvrir un sujet où il n'y a plus d'aide à donner.

Hors ligne

#4 Le 28/03/2012, à 14:08

gl38

Re : [Résolu] gnuplot donne des traits transversaux non désirés

C'est curieux en effet.
On peut même obtenir un très joli dessin en inversant l'ordre des lignes du deuxième paquet.

Mais si on met deux ligne blanches, on n'a plus que deux lignes verticales.
Cordialement,
Guy

Hors ligne

#5 Le 28/03/2012, à 14:11

pingouinux

Re : [Résolu] gnuplot donne des traits transversaux non désirés

En fait, pour s'en sortir, il suffit de doubler une ligne d'une série; ni vu ni connu, ça n'apparaît pas sur le dessin.

Hors ligne

#6 Le 28/03/2012, à 14:15

pingouinux

Re : [Résolu] gnuplot donne des traits transversaux non désirés

@gl38 #4 : En effet, c'est une meilleure solution. S'il y a plus de 2 séries, il faut doubler toutes les lignes blanches, sinon on a un résultat intermédiaire.

Dernière modification par pingouinux (Le 28/03/2012, à 14:17)

Hors ligne