次のように、gnuplot
プロンプトシェルでグラフを頻繁にプロットします。
gunuplot> plot sin(x) with linespoints pointtype 3
表示される数字は素晴らしいです。
今日、このようにグラフを.png
ファイルに保存します:
gnuplot> set term png
gnuplot> set output "output.png"
gunuplot> plot sin(x) with linespoints pointtype 3
次に、次のように、Ubuntuでoutput.png
をeog
で開きます。
$ eog output.png
eog
に表示されるoutput.pngは、プロンプトシェルにプロットされる図ほど良くないことがわかりました。
何故ですか? output.png
を保存する前にいくつかの設定を調整する必要がありますか?
[〜#〜] ps [〜#〜]
それを回避する方法を最初に見つけました
set term postscript
set output "output.ps"
次に、Linuxシェルで、
$ convert output.ps output.jpg
このようにして、私の問題を何らかの形で解決します。
PNGの品質に関する問題の原因は、Gnuplotのpng端子に欠けているアンチエイリアスである可能性が高いです。スクリーンショットを提供していないので、悪い線幅について話すときの意味はわかりませんが、(MacOSで)私に見えるのは次のとおりです。このスクリーンショットは、gnuplotのネイティブアクアターム出力の出力を示しています。
set term png
を使用してpngを作成すると、線は「ジャンピー」になり、ピクセル化されます。
ただし、レンダリングにCairoライブラリを使用するpng端末のバージョンがあり、それにより出力がはるかに滑らかで見やすくなります。 set term pngcairo
は次の結果を提供します。
set terminal
を使用して、この端末バージョンが使用可能かどうかを確認できます。そうである場合、これにより変換作業が節約され、JPG(ラインアートには理想的な形式ではありません)よりも優れた画質が得られます。
PNG端末で生成されたgnuplotのPNG画像のデフォルトサイズは640x480ピクセルです。特定の場合、この解像度は、デフォルト(wxt)ターミナルを使用して画面上で生成されるグラフほどニースではない「ピクセル化された」グラフになる可能性があります。
サイズオプションを使用して、出力画像の解像度を変更できます。
set terminal png size <x,y>
ここで、xとyは、それぞれ水平軸と垂直軸に沿った望ましいピクセル数です。例えば:
set terminal png size 1024,768
画像の解像度が大きいと、ディスク上のファイルが比例して大きくなることに注意してください。または、マシンで使用可能な場合は「post eps」または「pdf」などの非ラスター端末を使用してみてください。これにより、大きなディスクフットプリントなしで高品質でスケーラブルで(比較的)ポータブルな画像が得られます。
あるいは、gnuplotでプロフェッショナルな(出版準備が整った)品質の画像が必要な場合は、epslatex端末を見てください。私は非常に素晴らしい結果、事実上ピクセル化の問題、画像をpdfに変換するときの移植性、およびLatexのほとんどすべての機能を備えた論文と論文に広範囲に使用しました。
コメント:JPEGファイルを例として使用します。背景として写真がない限り、ラインプロットにJPEGを使用しないでください。 JPEGは、線画の鋭いエッジを処理するようには設計されていません。