我在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
答案 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
我不知道任何“更聪明”的解决方案,即使无视gnuplot的能力。