2013-10-05 14 views
12

gnuplotで18x18行列をプロットしたい。ここに私のコードです:Gnuplotプロット画像付き2D行列、各セルの境界線を描きたい

:今

enter image description here

私はこのようになります。各セルに境界線を追加したい:私はこのような図を得た後

set size ratio 1 
set palette gray negative 
set xrange[-0.5:17.5] 
set yrange[-0.5:17.5] 
set cbrange[-0.2:0.8] 
set xtics 0,1,17 
set ytics 0,1,17 
set xtics offset -0.5,0 
set title "Resolusition Matrix for E" 
plot "Mat" matrix w image noti 

enter image description here

ありがとうございます。あなたのケースでは

答えて

13

あなたは、2つのピクセル間の境界にある1つの小目盛りを設定し、それらの上にグリッドを描くことができます:set grid frontも前に目盛りをもたらすこと、

set size ratio 1 
set palette gray negative 
set autoscale xfix 
set autoscale yfix 
set xtics 1 
set ytics 1 
set title "Resolution Matrix for E" 

set tics scale 0,0.001 
set mxtics 2 
set mytics 2 
set grid front mxtics mytics lw 1.5 lt -1 lc rgb 'white' 
plot "Mat" matrix w image noti 

注意。これを防ぐには、チックを0に合わせることができます。マイナーティックスの場合は、非常に小さい数値を使用する必要があります。0はマイナーチックのグリッド線を省略します。 4.6.3と

結果は次のとおりです。

enter image description here

EDIT:独立グリッド線と目盛りの見出しを制御するために、あなたは、グリッドを描画するために使用されていないx2y2を使用することができます(触発さHow do I draw a vertical line in gnuplot?への答え):

set size ratio 1 
set palette gray negative 
# grid lines 
set x2tics 1 format '' scale 0,0.001 
set y2tics 1 format '' scale 0,0.001 
set mx2tics 2 
set my2tics 2 

# labeling 
set xtics 5 out nomirror 
set ytics 5 out nomirror 

set grid front mx2tics my2tics lw 1.5 lt -1 lc rgb 'white' 

set xrange[-0.5:39.5] 
set yrange[-0.5:39.5] 
set x2range[-0.5:39.5] 
set y2range[-0.5:39.5] 

plot "Mat" matrix w image notitle 

gnuplotでバージョン4.6には、これは、明示的な範囲を設定するようにする必要がありxx2(未使用!)は等しい。情報は、データファイルからstatsで抽出することができます。

バージョン5を使用すると、set linkを使用できます。すべてset *rangeのものの代わりに。あなたは使用することができます

set autoscale fix 
set link x 
set link y 

結果:

enter image description here

+0

素晴らしい、良いコメントを!ありがとう、クリストフ! – Kai

+0

ここに別の問題があります。私は80x80の大きな行列を持っていますが、ラベルはとても忙しく見えます。私はティックの下の数字を避けたいが、グリッドを表示するためにチックをそのままにしておきたい。 – Kai

+0

'set format y" "'それらを削除しました。 – Kai

関連する問題