1

それらを分析するためにいくつかのデータをプロットしようとしています。

私のデータは次のように定義されています。

class Data(object):
    def __init__(self, rows=200, cols=300):
        """
        The Data constructor
        """
        # The data grid
        self.cols = cols
        self.rows = rows
        # The 2D data structure
        self.data = numpy.zeros((rows, cols), float)

最初に、私はこの方法を持っていました:

  def generate_data_heat_map(data, x_axis_label, y_axis_label, plot_title, file_path):
    plt.figure()
    plt.title(plot_title)
    fig = plt.imshow(data.data, extent=[0, data.cols, data.rows, 0])
    plt.xlabel(x_axis_label)
    plt.ylabel(y_axis_label)
    plt.colorbar(fig)
    plt.savefig(file_path + '.png')
    plt.close()

これにより、ヒート マップ イメージ (2 番目の図) として何かが得られます。これは、MxN [輝度 (グレースケール、フロート配列のみ)] を渡すためです。これがグレースケール画像を生成しない理由はわかりませんが、これまでのところ、それが私が望んでいた結果であるため、心配していませんでした.

さらに計算を行った後、data_propertyを RGB として、data_uncertaityをアルファとして使用して、次の方法でデータを視覚化しました。

def generate_data_uncertainty_heat_map(data_property, data_uncertainty, x_axis_label, y_axis_label, plot_title, file_path):
    plt.figure()
    uncertainty = numpy.zeros((data_property.rows, data_property.cols, 4))
    uncertainty[..., :3] = data_property.data[..., numpy.newaxis]
    uncertainty[..., 3] = data_uncertainty.data
    plt.title(plot_title)
    fig = plt.imshow(uncertainty.data, extent=[0, data_property.cols, data_property.rows, 0])
    plt.xlabel(x_axis_label)
    plt.ylabel(y_axis_label)
    plt.colorbar(fig)
    plt.savefig(file_path + '.png')
    plt.close()

しかし、もちろん、R、G、B に同じ値を繰り返しているため、アルファ値を持つグレースケール イメージが得られます。データに関する不確実性として。

ここに画像の説明を入力

カラー バーにもデータに関する情報がないことに気付きました (RGB であり、データの分析には使用できません)。

不確実性データで定義されたアルファ値とこの不確実性を表すカラーバーをマージした「ヒートマップ」プロットを作成するという、希望する結果を達成する方法がわかりません。上のこの 2 つの画像をマージするように:

これは私の色として: 図 2

これは私のアルファとして: ここに画像の説明を入力

@BlazBratanic によって提示された変換では、少し色が見えると思いますが (よくわかりません)、期待していたものとはかけ離れています。

ここに画像の説明を入力

私の値はすべて 0.0 から 1.0 の間です。

前もって感謝します。

4

1 に答える 1

1

Matplotlib cm モジュールを使用して、グレースケールを色の値にマップします。私の記憶が正しければ、「jet」がデフォルトのカラーマップです。したがって、次のようにします。

uncertainty = plt.cm.jet(data_property.data)
uncertainty[..., 3] = data_uncertainty.data
于 2014-03-17T14:23:50.913 に答える