матрица gnuplot увеличил размер пикселя - PullRequest
0 голосов
/ 22 октября 2019

У меня проблемы с визуализацией большой матрицы в gnuplot, по-видимому, из-за размеров пикселей. В качестве минимального рабочего примера я пытаюсь построить матрицу идентичности 5000 x 5000 со следующими командами:

set term pngcairo enh col
set out "plot.png"    
unset key
set datafile commentschars "%#"
set xrange [0:5000]
set yrange [5000:0] reverse
plot 'A' matrix w image

Данные здесь . Результирующий график выглядит следующим образом: enter image description here

Вы можете увидеть некоторые диагональные элементы, но они выглядят довольно плохо, и большая часть диагонали отсутствует. Когда я иду к 10000 х 10000, ни одна диагональ не видна. Кажется, размеры пикселей недостаточно велики. Напротив, следующий код Matlab дает хорошую фигуру:

A = eye(5000,5000);
imagesc(A);

Фигура выглядит так:

enter image description here

Здесь мыможно увидеть хорошую диагональ на изображении. Как я могу заставить gnuplot создать похожую фигуру ?

1 Ответ

1 голос
/ 22 октября 2019

Вариант 1. Сделайте разрешение графика достаточно большим, чтобы оно могло фактически представлять 5000 пикселей на сторону. Если полученный файл изображения слишком велик для вашей цели, вы можете уменьшить его с помощью внешнего инструмента, такого как ImageMagick. Вероятная проблема заключается в том, что диагональная линия настолько тонкая, что она станет невидимой при уменьшении фигуры.

 set size square
 unset key
 set datafile commentschars "%#"
 set xrange [0:5000]
 set yrange [5000:0] reverse

 set term pngcairo size 6000,6000 fontscale 10.
 set output 'bigplot.png'
 plot 'A' matrix w image
 unset output

Вариант 2: уменьшите выборку матрицы, чтобы она соответствовала меньшему разрешению графика. Например,

 set size square
 unset key
 set datafile commentschars "%#"
 set xrange [0:5000]
 set yrange [5000:0] reverse

 set term pngcairo size 600,600
 set output 'smallplot.png'
 plot 'A' matrix every 10:10 with image

Ниже показан результат из варианта 2 enter image description here

...