48 votes

output.png de gnuplot n'est pas aussi bon que la figure de prompt shell

Je trace souvent des graphiques dans gnuplot shell prompt, comme ceci :

gunuplot> plot sin(x) with linespoints pointtype 3

et la figure présentée est géniale.

Aujourd'hui, je sauvegarde le graphique dans un .png comme ceci :

gnuplot> set term png
gnuplot> set output "output.png"
gunuplot> plot sin(x) with linespoints pointtype 3

Ensuite, j'ouvre output.png con eog dans Ubuntu, comme ceci :

$ eog output.png

J'ai constaté que, la sortie.png affichée en eog n'est pas aussi bonne que la figure tracée dans la coquille rapide.

Comment cela se fait-il ? Dois-je ajuster certains paramètres avant de sauvegarder l'image ? output.png ?

PS

J'ai trouvé un moyen de contourner le problème, d'abord,

set term postscript
set output "output.ps"

puis dans le shell linux,

$ convert output.ps output.jpg

De cette façon, on peut résoudre mon problème.

77voto

jstarek Points 778

La source de vos problèmes avec la qualité PNG est très probablement l'absence d'anticrénelage dans le terminal png de Gnuplot. Puisque vous ne donnez aucune capture d'écran, je ne suis pas sûr de ce que vous voulez dire quand vous parlez de mauvaise largeur de ligne, mais voici comment cela se présente pour moi (sur MacOS). Cette capture d'écran montre la sortie de l'aquaterm natif de gnuplot :

A plot using gnuplot's native aquaterm output

Si nous créons un png en utilisant set term png les lignes deviennent "nerveuses" et pixellisées :

The sine curve, plotted using the png terminal

Cependant, il existe une version du terminal png qui utilise les librairies du Caire pour le rendu, et qui rend la sortie beaucoup plus lisse et plus agréable. set term pngcairo donne ce résultat :

The sine curve, plotted using the pngcairo terminal

Vous pouvez utiliser set terminal pour vérifier si cette version du terminal est disponible pour vous. Si c'est le cas, vous devriez économiser le travail de conversion et obtenir une meilleure qualité d'image qu'un JPG (qui n'est pas un format idéal pour les dessins au trait).

16voto

Giannis Points 21

La taille par défaut de l'image PNG générée par gnuplot avec le terminal PNG est de 640x480 pixels. Cette résolution peut dans certains cas donner lieu à des graphiques "pixellisés" qui ne sont pas aussi beaux que ceux produits à l'écran avec le terminal par défaut (wxt).

Vous pouvez modifier la résolution de l'image de sortie en utilisant l'option de taille :

set terminal png size <x,y>   

où x et y sont les nombres souhaités de pixels le long de l'axe horizontal et vertical, respectivement. Par exemple :

set terminal png size 1024,768

Veuillez noter que les images ayant une plus grande résolution entraîneront des fichiers proportionnellement plus volumineux sur le disque. Vous pouvez également essayer d'utiliser des terminaux non matriciels comme "post eps" ou "pdf", s'ils sont disponibles sur votre machine, qui peuvent vous donner des images de haute qualité, évolutives et (relativement) portables, sans une grande empreinte sur le disque.

8voto

Miguel Points 1946

Par ailleurs, si vous souhaitez obtenir des images de qualité professionnelle (prêtes à être publiées) avec gnuplot, vous devriez jeter un œil au terminal epslatex. Je l'ai beaucoup utilisé pour ma thèse et mes articles avec de très bons résultats, pratiquement aucun problème de pixellisation, une portabilité lors de la conversion des images en pdf, et presque toutes les capacités de Latex.

2voto

djconnel Points 266

Commentaire : vous utilisez un fichier JPEG comme exemple. Vous ne devriez probablement jamais utiliser le format JPEG pour des tracés linéaires, sauf s'ils ont des photographies comme arrière-plan. Le format JPEG n'est tout simplement pas conçu pour gérer les bords tranchants des dessins au trait.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X