web-dev-qa-db-fra.com

Choisir le type de trait et la couleur dans Gnuplot 4.0

J'ai deux paires d'ensembles de données, que je dois tracer avec Gnuplot.

Je veux que la première paire soit tracée en rouge, une solide et une en pointillé. La deuxième paire, je veux tracer en bleu, un solide et un en pointillé.

J'ai expérimenté avec set style line plusieurs fois, mais je ne parviens pas à obtenir ce comportement exact. Ma dernière tentative (ci-jointe) trace la première paire en rouge (solide) et la deuxième paire en bleu (en pointillé).

Toute aide sera fortement appréciée.

set style line 1 lt 1 lw 3 pt 3
set style line 2 lt 1 lw 3 pt 3
set style line 3 lt 3 lw 3 pt 3
set style line 4 lt 3 lw 3 pt 3
plot 'data1.dat' using 1:3 w l ls 1,\
     'data1.dat' using 1:4 w l ls 2,\
     'data2.dat' using 1:3 w l ls 3,\
     'data2.dat' using 1:4 w l ls 4
36
Escualo

Vous devez utiliser linecolor au lieu de lc, comme ceci:

set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"

"help set style line" vous donne plus d'informations.

28
Zitrax

J'ai rencontré ce sujet parce que je me débattais aussi avec les lignes pointillées (gnuplot 4.6 patchlevel 0)

Si tu utilises:

set termoption dashed

Votre code posté fonctionnera en conséquence.

Question connexe:
Cependant, si je veux exporter un png avec: set terminal png, cela ne fonctionne plus. Quelqu'un a un indice pourquoi?

Il s'avère que la bibliothèque d'exportation gnuplots png ne prend pas cela en charge.
Solutions possibles:

  • on peut simplement exporter en ps, puis le convertir avec pstopng
  • selon @christoph, si vous utilisez pngcairo comme terminal (set terminal pngcairo) ça va marcher
14
p1100i

Voici la syntaxe:

  set terminal pdf {monochrome|color|colour}
                   {{no}enhanced}
                   {fname "<font>"} {fsize <fontsize>}
                   {font "<fontname>{,<fontsize>}"}
                   {linewidth <lw>} {rounded|butt}
                   {solid|dashed} {dl <dashlength>}}
                   {size <XX>{unit},<YY>{unit}}

et un exemple:

set terminal pdfcairo monochrome enhanced font "Times-New-Roman,12" dashed
7
Helio Rocha

Vous pouvez également définir l'option 'en pointillé' lors de la configuration de votre terminal, par exemple:

set term pdf dashed
7
Emile Aben

Edit: Désolé, cela ne fonctionnera pas pour vous. Je viens de me rappeler que la couleur de la ligne est en 4.2. J'ai rencontré ce problème dans le passé et mon correctif consistait à mettre à niveau gnuplot.

Vous pouvez également contrôler la couleur avec la ligne de style définie. "lt 3" vous donnera une ligne pointillée alors que "lt 1" vous donnera une ligne pleine. Pour ajouter de la couleur, vous pouvez utiliser "lc rgb 'color'". Cela devrait faire ce dont vous avez besoin:


set style line 1 lt 1 lw 3 pt 3 lc rgb "red"
set style line 2 lt 3 lw 3 pt 3 lc rgb "red"
set style line 3 lt 1 lw 3 pt 3 lc rgb "blue"
set style line 4 lt 3 lw 3 pt 3 lc rgb "blue"
4
Neal

Vous voudrez peut-être consulter le paquet de traçage Pyxplot http://pyxplot.org.uk qui a une syntaxe très similaire à celle de gnuplot, mais avec les aspérités nettoyées. Il gère les couleurs et les styles de ligne de manière nette et homogène, entre les terminaux x11 et eps/pdf.

Le script Pyxplot pour ce que vous voulez faire ci-dessus serait:

set style 1 lt 1 lw 3 color red
set style 2 lt 1 lw 3 color blue
set style 3 lt 2 lw 3 color red
set style 4 lt 2 lw 3 color blue
plot 'data1.dat' using 1:3 w l style 1,\
  'data1.dat' using 1:4 w l style 2,\
  'data2.dat' using 1:3 w l style 3,\
  'data2.dat' using 1:4 w l style 4`
4
Dominic Ford

Je sais que la question est ancienne mais j’ai trouvé cela très utile http://www.gnuplot.info/demo_canvas/dashcolor.html . Vous pouvez donc choisir le type de ligne et la couleur de couleur séparément, mais vous devez tout précéder de "set dash termoption" (pour moi dans gnuplot 4.4).

2
Katrin