【问题标题】:gnuplot matrix increased pixel sizegnuplot 矩阵增加了像素大小
【发布时间】:2019-10-22 03:26:39
【问题描述】:

我无法在 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 产生类似的图形

【问题讨论】:

    标签: matrix gnuplot pixel


    【解决方案1】:

    选项 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 的输出

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-03
      • 2016-08-02
      • 2021-05-11
      • 1970-01-01
      • 2020-01-06
      • 1970-01-01
      • 2014-04-08
      • 2013-12-20
      相关资源
      最近更新 更多