似乎由于像素大小,我无法在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
数据为here。结果图如下:
您可以看到一些对角线元素,但它看起来很糟糕,并且许多对角线都丢失了。当我转到10000 x 10000时,对角线均不可见。像素大小似乎不够大。相反,下面的matlab代码产生了一个很好的图形:
A = eye(5000,5000);
imagesc(A);
该图看起来像这样:
这里我们可以在图像中看到一个不错的对角线。 如何使gnuplot产生相似的图形?
选项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