Ответ 1
В вашем случае вы можете установить один незначительный tic, который затем лежит на границе между двумя пикселями, и нарисуйте на них сетку:
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
Обратите внимание, что set grid front
также выводит тики на передний план. Чтобы избежать этого, вы можете масштабировать тики до 0
. Для второстепенных тиков вы должны использовать очень небольшое число, 0
опускает линии сетки на второстепенных тиках.
Результат с 4.6.3:
EDIT: для управления линиями сетки и тиковыми метками независимо, вы можете использовать неиспользованные x2
и y2
для рисования сетки (на основе ответа на How я рисую вертикальную линию в 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 это требует установки явных диапазонов, так что значения x
и x2
(unused!) равны. Информация может быть извлечена с помощью stats
из файла данных.
Использование версии 5 позволяет использовать set link
. Вместо всего этого set *range
. Вы можете использовать:
set autoscale fix
set link x
set link y
Результат: