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
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.
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
Vous pouvez également définir l'option 'dashed' lors de la configuration de votre terminal, par exemple:
set term pdf dashed
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
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"
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`
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).