带有图像的 gnuplot 图的奇怪对角线图
Weird diagonal plot with gnuplot plot with images
我正在尝试绘制 3 个变量,其中第三列定义了调色板。代码被另一个程序调用。数据文件具有分散的数据点,这些数据点以“:”(冒号)分隔。
使用的脚本文件:
reset
set title "Cluster Properties"
set datafile separator ":"
outfile = sprintf("%s%s", ARG2, "ClusterCount2.png")
set output outfile
set term pngcairo size 1920, 1080 enhanced font 'Verdana,30'
x_tk = sprintf("%s%s%s", "Sweeps ( X ", ARG6, " )")
set xtics 1,1
set ytics 1,1 font ", 20"
set ytics add (2)
set xlabel x_tk
set ylabel "Cluster Size (Particles)"
set zlabel "Number of Clusters"
set cblabel "Number of Clusters"
set cbtics 0,1 font ", 20"
set autoscale xfix
set yrange [1:*]
set view map
set y2tics 1,1
set grid front xtics y2tics lw 1.5 lt -1 lc rgb 'white'
unset key
plot ARG1 using (/ARG6):2:3 with image
reset
给出以下输出:
有问题的剧情:
同时用更少的数据点做同样的事情:
好剧情:
Link到数据文件:Drive Link to data file
谁能帮我解决这个问题,我不知道出了什么问题?
您的数据文件没有为隐含图像中的每个像素包含一行。
IE。有 11 个点的 x 值为 50000,25 个点的 x 值为 100000,39 个点的 x 值为 150000,...当程序试图计算出图像中水平和垂直像素的数量时,它会看到 11 个点具有相同的 x 坐标并认为啊哈!图像尺寸之一是 11。但是在读取整个数据文件后,它知道总共有 738 个像素,并试图使它成为 11xSomething 矩形。这显然是行不通的,它最终在每条垂直线上绘制了 11 个像素,但交错排列以填充所见的整个坐标范围。
简而言之,您的数据文件实际上并未描述可呈现为图像的完整矩形像素阵列。您可以修改用于生成文件的过程,以便填充整个矩形,或者绘制 with points pt 5
而不是 with image
.
这是
的输出
gnuplot> set pointsize 4
gnuplot> plot 'clusterstat.dat' using (/5.e5):2:3 with point pt 5 lc palette
显然你会想要进一步调整点的大小、轴比、标签的位置等,但它显示了数据中的内容。
我正在尝试绘制 3 个变量,其中第三列定义了调色板。代码被另一个程序调用。数据文件具有分散的数据点,这些数据点以“:”(冒号)分隔。
使用的脚本文件:
reset
set title "Cluster Properties"
set datafile separator ":"
outfile = sprintf("%s%s", ARG2, "ClusterCount2.png")
set output outfile
set term pngcairo size 1920, 1080 enhanced font 'Verdana,30'
x_tk = sprintf("%s%s%s", "Sweeps ( X ", ARG6, " )")
set xtics 1,1
set ytics 1,1 font ", 20"
set ytics add (2)
set xlabel x_tk
set ylabel "Cluster Size (Particles)"
set zlabel "Number of Clusters"
set cblabel "Number of Clusters"
set cbtics 0,1 font ", 20"
set autoscale xfix
set yrange [1:*]
set view map
set y2tics 1,1
set grid front xtics y2tics lw 1.5 lt -1 lc rgb 'white'
unset key
plot ARG1 using (/ARG6):2:3 with image
reset
给出以下输出:
有问题的剧情:
同时用更少的数据点做同样的事情:
好剧情:
Link到数据文件:Drive Link to data file
谁能帮我解决这个问题,我不知道出了什么问题?
您的数据文件没有为隐含图像中的每个像素包含一行。 IE。有 11 个点的 x 值为 50000,25 个点的 x 值为 100000,39 个点的 x 值为 150000,...当程序试图计算出图像中水平和垂直像素的数量时,它会看到 11 个点具有相同的 x 坐标并认为啊哈!图像尺寸之一是 11。但是在读取整个数据文件后,它知道总共有 738 个像素,并试图使它成为 11xSomething 矩形。这显然是行不通的,它最终在每条垂直线上绘制了 11 个像素,但交错排列以填充所见的整个坐标范围。
简而言之,您的数据文件实际上并未描述可呈现为图像的完整矩形像素阵列。您可以修改用于生成文件的过程,以便填充整个矩形,或者绘制 with points pt 5
而不是 with image
.
这是
的输出gnuplot> set pointsize 4
gnuplot> plot 'clusterstat.dat' using (/5.e5):2:3 with point pt 5 lc palette
显然你会想要进一步调整点的大小、轴比、标签的位置等,但它显示了数据中的内容。