50.3 ヒストグラムの色の割り当て (histogram color assignments)

gnuplot は、ヒストグラム内の各要素の箱に自動的に色を割り当てますが、同 値なデータには、それらがヒストグラムの行、または列にどこに現れたとして も首尾一貫した色を保持するようにします。色は、連続する線種 (linetype) の、まだ使用されていない次の線種、または newhistogram 命令の提示によ って初期化される最初の線種のいずれかから始まるものが使われます。

この仕組みは、データソースが真に並列ではない (すなわち、いくつかのファ イルのデータが不完全) ために失敗することがあります。または、基本色の光 度や彩度を変えることにより視覚化するためのデータの追加属性を与えたいか もしれません。自動的な色の割り当ての代わりに、各データ用の明示的な色の 値を、2 番目の using 列で、linecolor variablergb variable の 仕組みによって与えることができます。以下参照: colorspec (20.1)。あなたのデ ータのレイアウトによって、色のカテゴリは、行のヘッダか、列のヘッダか一 つのデータ列でありえます。多分、凡例 (key) のサンプルの色は、それに合 うようにカスタマイズする必要があることに注意してください (以下参照: keyentry (110.39.3))。

例: file_001.dat から file_008.dat は、1 列目はカテゴリ識別子の A, B, C, ... で、2 列目がデータ値になっています。すべてのファイルがすべての カテゴリに対する行を持っているとは限らず、よって完全な並列データ群では ありません。この場合、gnuplot は、間違って各ファイルの N 行目の値に同 じ色を割り当てようとしてしまいます。その代わりに、1 列目のカテゴリに基 づいた色を割り当てる例です。


    file(i) = sprintf("file_%03d.dat",i)
    array Category = ["A", "B", "C", "D", "E", "F"]
    color(c) = index(Category, strcol(c))
    set style data histogram
    plot for [i=1:8] file(i) using 2:(color(1)) linecolor variable

さらに key のカスタマイズの生成も含む完全な例が、デモの中の histogram_colors.dem

にあります。

竹野茂治@新潟工科大学
2023-08-29