Choix du type de ligne et de la couleur dans Gnuplot 4.0

j'ai deux paires d'ensembles de données, que je dois tracer en utilisant Gnuplot.

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

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

Toute aide sera grandement apprécier.

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
demandé sur Escualo 2010-01-16 01:52:16

7 réponses

Vous devez utiliser linecolor au lieu de lc, comme:

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

"aider à définir le style de ligne" vous donne plus d'infos.

27
répondu Zitrax 2010-01-15 23:49:44

je suis tombé sur ce sujet, parce que je me battais avec des lignes pointillées trop (gnuplot 4.6 version 0)

Si vous utilisez:

set termoption dashed

votre code affiché fonctionnera en conséquence.

question connexe:

Cependant, si je veux exporter un png avec: réglez le terminal png, ça ne marche plus. Quelqu'un a une idée pourquoi?

il S'avère que la bibliothèque d'exportation png de gnuplots ne supporte pas ce.

Solutions Possbile:

  • on peut simplement exporter vers ps, puis le convertir avec pstopng
  • selon @christoph, si vous utilisez pngcairo comme votre terminal (set terminal pngcairo), cela fonctionnera
14
répondu p1100i 2017-03-23 18:34:35

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

set term pdf dashed
7
répondu Emile Aben 2012-07-12 11:11:34

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}}

un exemple:

set terminal pdfcairo monochrome enhanced font "Times-New-Roman,12" dashed
7
répondu Helio Rocha 2012-09-24 04:56:20

Edit: Désolé, cela ne fonctionne 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 ma solution était de mettre à jour gnuplot.

Vous pouvez contrôler la couleur avec un style de ligne. "lt 3" vous donnera une ligne en pointillés alors que "lt 1" vous donnera une ligne solide. Pour ajouter de la couleur, vous pouvez utiliser "lc rgb color". Cela devrait faire ce que vous avez besoin de:


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
répondu Neal 2010-01-15 23:37:24

vous pourriez vouloir regarder le paquet de tracé de Pyxplot http://pyxplot.org.uk qui a une syntaxe très similaire à celle de gnuplot, mais avec les contours rugueux nettoyés. Il traite les couleurs et les styles de ligne de façon très soignée, et de manière 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`
3
répondu Dominic Ford 2012-08-29 23:08:35

je sais que la question est vieux, mais j'ai trouvé cela très utile http://www.gnuplot.info/demo_canvas/dashcolor.html . Vous pouvez donc choisir linetype et linecolor séparément mais vous devez tout précéder par "set termoption dash" (travaillé pour moi dans gnuplot 4.4).

2
répondu Katrin 2012-01-23 16:54:07