gnuplot矩阵增加的像素大小

问题描述 投票:0回答:1

似乎由于像素大小,我无法在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。结果图如下:enter image description here

您可以看到一些对角线元素,但它看起来很糟糕,并且许多对角线都丢失了。当我转到10000 x 10000时,对角线均不可见。像素大小似乎不够大。相反,下面的matlab代码产生了一个很好的图形:

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

该图看起来像这样:

enter image description here

这里我们可以在图像中看到一个不错的对角线。 如何使gnuplot产生相似的图形

matrix gnuplot pixel
1个回答
0
投票

选项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

© www.soinside.com 2019 - 2024. All rights reserved.