-2
私はヒートマップを描きたい
、私は2次元配列を持っていると私はこの答えを追っ:https://stackoverflow.com/a/32459287/2370139 私はC内のgnuplotを使っ++最初の行と列は、通常の値ですので、私は「不均一」を削除したことを除いては、ダニません。ヒートマップが空白(白)ですか?
Gnuplot gp;
gp << "set autoscale xfix \n";
gp << "set autoscale yfix \n";
gp << "set autoscale cbfix \n";
gp << "plot '-' matrix with image notitle\n";
gp.send2d(pmat);
gp.flush();
pmatは、サイズ50 * 50の2次元アレイです。浮動小数点数は0と1の間で埋められます。 完全に白いグリッドをプロットしますが、何が問題なのでしょうか?
注:
0.5 0.3 0.3
0.2 0.4 0.6
0.2 0.8 1
のようなテキストファイルで、通常のgnuplotのターミナルで使用する場合、上記のコマンドが正常に動作しそうな問題はdoesnのgnuplot-iostream
場合はC++のAPIの私の使い方
私は 'gnuplot-iostream'に慣れていませんが、[this](https://github.com/dstahlke/gnuplot-iostream/wiki/Datatypes#1d-vs-2d-data)によると、 'send2d'は行列形式で配列データを送るのではなく、新しい行や列を表す空白を持つ一次元のリストとして送信します。プロットコマンドを 'gp <<"で置き換えると、 ' - 'という行をnotitle \ n"; 'で置き換えるとどうなりますか? – user8153
コメントをいただき、ありがとうございます。それは3Dグラフを描画しますが、私が望むのはヒートマップです((x、y)の色はpmat [x] [y]を表します)。 – user2370139
'matrix'キーワードを削除しようとしましたか?' plot ' - "with image'だけを使用しましたか? – Christoph