gnuplot 矩阵增加了像素大小
gnuplot matrix increased pixel size
我在 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 时,对角线的 none 是可见的。似乎像素尺寸不够大。相比之下,下面的 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
下面显示的是选项 2 的输出
我在 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 时,对角线的 none 是可见的。似乎像素尺寸不够大。相比之下,下面的 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
下面显示的是选项 2 的输出