如何增加单元格的大小并将其保持在gnuplot中

时间:2015-12-01 13:00:24

标签: size gnuplot cell

我在3天前发布过类似的问题("增加像素大小")。但是,到目前为止,没有答案。因此,我决定开始一个新的主题,让我的问题更精确。

我每68个2D矩阵68,我想从中制作热图。我做到了,但是 问题是,对于这种尺寸的矩阵,细胞变得非常小。 https://www.dropbox.com/s/b4ygdg0csa7d5y5/TEST_68x68.png?dl=0

因此,我想增加一个单元格的大小,例如两次并保持固定。 因此,我的想法是定义一个矩阵,它将比68/68大两倍,即68 * 2/68 * 2,然后相应地增加单元格的大小。我试过了:https://www.dropbox.com/s/spwo6zik1f077z3/TEST_incresedTwice.png?dl=0 然而,细胞的尺寸也被缩放。它们具有与标准68/68矩阵相同的大小(参见第一个链接)。细胞也在移动。例如,不是绑定到它们的原始坐标,而是将所有值移动到10.我知道原因。问题是,如何防止GNUPLOT这样做?

总结一下,我想增加细胞大小,保持其尺寸固定,并将这些较大的细胞绘制在68 * 2/68 * 2矩阵上。

有什么建议吗?谢谢。

谢谢。

以下代码:

 set terminal png transparent truecolor nocrop enhanced size 2000,2000 font     
 "arial bold,30” 
 set output 'TEST_now.png'
 set size ratio 1
 set palette rgbformulae -21,-22,-23
 set xrange[-0.5:136.5]
 set yrange[-0.5:136.5]
 plot "matrix.dat" matrix using ($1*2):($2*2):3 with image not

1 个答案:

答案 0 :(得分:1)

使用image绘图样式,您可以获得68×68像素,大小相同。您无法增加单个像素的大小。

在您的数据文件中,您有许多条目0.00,这是白色像素的原因。并且,在数据文件中,您有

部分
0.000 0.457 0.000 0.000
0.000 0.000 0.000 0.000
0.000 0.073 0.337 0.000
0.002 0.993 0.916 0.000
0.000 0.003 0.000 0.000

在这里,我甚至不知道你会如何看待像素被放大。

可能性是将每个像素绘制为方形点并使用大点大小。然而,这导致紧邻的点重叠。要稍微减少此问题,您可以先使用0 < z <= 0.1绘制所有点,然后使用0.1 < z <= 0.2绘制所有点,依此类推:

set terminal pngcairo transparent truecolor nocrop enhanced size 2000,2000 font "arial bold,30” 
set output 'TEST_now.png'
set size ratio 1
set palette rgbformulae -21,-22,-23
set autoscale xfix
set autoscale yfix
set offsets 1,1,1,1
plot for [i=1:10] "matrix.dat" matrix using ($3 > 0.1*(i-1) && $3 <= 0.1*i ? $1 : 1/0):2:3 with points pt 5 ps 7 palette notitle

enter image description here

我不知道任何“更聪明”的解决方案,即使无视gnuplot的能力。