実習B 図3と図7の散布図

情報リテラシ第一 / 情報リテラシ第二

B-1:図3

plot/fig3-cnm-ratio-joins.plotはgnuplotのプログラムです。ターミナルを開き、plotディレクトリに移動してからgnuplot fig3-cnm-ratio-joins.plotコマンドを実行するとimagesディレクトリにfig3-cnm-ratio-join.pdfという名前の画像ファイルが生成されます。

残念ながらこの画像ファイルにはいくつかの問題があります。

図3:CNM法におけるクラスターの合併比率の推移(片対数)
図3:CNM法におけるクラスターの合併比率の推移(片対数)

B-2:図7

図3のスクリプトを参考にして、自分で作成しなさい。スクリプトは図3のスクリプトをコピーし、fig7-hn-ratio-joins.plotと命名してから作業すること。

図7:HNにおけるクラスターの合併比率の推移(片対数)
図7:HNにおけるクラスターの合併比率の推移(片対数)

どうして巨大な画像ファイルになるの?

配布したgnuplotのプログラムが生成するのはベクトル画像をPDF形式で保存したものです。ベクトル画像においては画像全体は数学的な基本図形を組み合わせることによって表現されています。散布図の場合、個々の点は円を塗り潰したベクトル図形として表現しています。

以下の図は、生成されたPDFファイルを画像ビューワのプレビューで開いたのち、「Command +」を繰り返し入力することで画像を拡大したもののスナップショットです。この図より、個々の点がきれいな黒い円として表現されていることがわかります。この無駄に精密な表現によって、画像ファイルが大きくなってしまったのです。

大規模な散布図をPDF形式で出力した場合の問題点
大規模な散布図をPDF形式で出力した場合の問題点

プリンタがベクトル表現の円を描くときには、それぞれの円についてプリンタのなかで \((x - x_1)^2 + (y - y_1)^2 \le r^2\) の領域を紙面上で塗り潰します。上の散布図には100万近くの点が含まれているので、それだけの数の円の方程式を求解していることになります。この計算の手間を考えれば、プリントに時間がかかる理由が想像できますよね?

ビットマップ画像とベクトル画像

「ベクトル表現の円」という言葉が出てきました。「ベクトル表現」は画像のファイルフォーマットの流儀で二種類あるもののひとつです。以下では二種類の画像フォーマットの特性と違いについてすこし詳しく説明します。

ビットマップ画像

静止画像を表現するための画像フォーマットには多くのものがあります。代表的なものに BMP, GIF, JPEG, PNG, TIFF などがあります。このうち、BMP形式は通常圧縮を施さないため画像データが極めて大きくなります。GIF形式、PNG形式、TIFF形式は通常、可逆圧縮を施しますのでBMP形式よりはかなり小さくなります。このなかで、GIF形式は利用可能な色数が256色に制限されます。一方、PNG形式とTIFF形式はフルカラーに対応しています。このためGIF形式はアイコンやウェブ素材のように少ない色数ですむ用途に利用されています。JPEG形式は非可逆圧縮を施すために圧縮率について優れています。JPEG 2000は、JPEG の新しい規格で圧縮率と画質の両方について優れているのですが、いまのところあまり普及していません。

画像フォーマットはその性質にあった用途で利用します。写真に対して画像処理を行う場合には、最終的な完成品の品質が可能な限り高くなるように保ちたいものです。このため、画像処理をする段階では非可逆圧縮方式の画像フォーマットを避けます。写真の画像処理に頻繁に用いられる画像フォーマットはTIFF形式です。

高品質な写真を含んだ印刷物の場合、その原稿にも高品質な画像フォーマットが利用されます。多くの出版社が持ち込み写真原稿として TIFF 形式を指定するのはこの理由からです。

一方、写真をウェブページを用いて公開したり、電子メールの添付ファイルとして送信する場合にはデータの大きさを小さくする必要があります。このため多少、画質を犠牲にしてもデータを小さくできる非可逆圧縮方式を利用できる画像フォーマットが利用されます。この代表がJPEG形式です。JPEG形式の場合、圧縮率を必要に応じて指定することができます。

コンピュータソフトウェアのアイコンのように、少ない色数を使った比較的単純な造形の場合にはデータの大きさよりも形状の見易さが重視されます。このため、可逆圧縮方式が利用できる画像フォーマットが利用されます。この代表が GIF 形式と PNG 形式です。

ベクトル画像

ビットマップ画像は微小な画素(ピクセル)から構成されています。画素が人間の眼に十分に小さければ、人間の眼には自然な画像と見えるのですが、その画像を拡大するにつれ画素が目についてきます。画像を2倍、4倍、8倍に拡大したものを並べると、4倍に拡大したものは画像のギザギザが目立ってきます。8倍に拡大したものにおいては、画質のさらなる低下は免れません。

ビットマップ画像とは別に画像を表現する方式に ベクトル画像 があります。ベクトル画像は主に図形を表現するための表現方法で、数式で表現可能な基本的な形状を組み合わせることで図を構成していきます。画像に対する拡大や回転などの操作を行っても、拡大したり回転した平面を対象に描画を行うことでビットマップ画像のときに問題となったギザギザが発生することがありません。したがって、ベクトル画像を拡大しても画質は低下しません。

ベクトル画像を構成する基本図形は、線や折れ線、多角形、円や楕円、曲線などです。曲線はベジエ曲線やスプライン曲線のように多項式で与えた方程式によって形状を定めます。

ベクトル画像は主に、設計図、模式図などの描画に用いられます。また、自由に大きさを指定することが可能なフォントの情報もベクトル画像として構成されています。ベクトル画像を編集するためのソフトウェアとしては、コンピュータを用いた設計のためのCADや、ベクトル画像一般の編集のためのドローソフトがあります。