GNUplot自动缩放设置X范围等于Y范围

GNUplot自动缩放设置X范围等于Y范围,plot,gnuplot,Plot,Gnuplot,我使用GNUplot从数据文件中绘制轨道。我想使用自动缩放xy,这样就不需要根据数据编辑GNUplot脚本。但是,当我打印时,autoscale不会将xrange设置为与yrange相同。这使得轨道看起来“被挤压” 我试过使用设置大小平方和设置大小比率-1 . 但这不起作用 是否有强制自动缩放使x和y范围相等的方法 谢谢 否,没有将x和y范围自动缩放到相同值的选项。这里有一个解决方案,你可以通过一些技巧来做到这一点 如果您想让gnuplot将范围扩展到下一个tic,可以按如下操作: 必须首先使

我使用GNUplot从数据文件中绘制轨道。我想使用
自动缩放xy
,这样就不需要根据数据编辑GNUplot脚本。但是,当我打印时,
autoscale
不会将
xrange
设置为与
yrange
相同。这使得轨道看起来“被挤压”

我试过使用
设置大小平方
设置大小比率-1
.

但这不起作用

是否有强制
自动缩放
使x和y范围相等的方法


谢谢

否,没有将x和y范围自动缩放到相同值的选项。这里有一个解决方案,你可以通过一些技巧来做到这一点

如果您想让gnuplot将范围扩展到下一个tic,可以按如下操作:

必须首先使用
未知
终端打印一次。这将在gnuplot变量
GPVAL\u x\u MIN
GPVAL\u x\u MAX
GPVAL\u y\u MIN
GPVAL\u y\u MAX
中保存x和y范围。然后设置范围并重新打印:

set terminal push # save current terminal
set terminal unknown
plot 'datafile'
set terminal pop # restore previous terminal

min = (GPVAL_Y_MIN < GPVAL_X_MIN ? GPVAL_Y_MIN : GPVAL_X_MIN)
max = (GPVAL_Y_MAX > GPVAL_X_MAX ? GPVAL_Y_MAX : GPVAL_X_MAX)

set xrange[min:max]
set yrange[min:max]
set size ratio -1

replot
另一个选项是使用
stats
计算最大和最小x值和y值,并相应地设置范围:

stats 'datafile' using 1:2 nooutput
min = (STATS_min_y < STATS_min_x ? STATS_min_y : STATS_min_x)
min = (STATS_max_y > STATS_max_x ? STATS_max_y : STATS_max_x)

sc = 1.05
set xrange[sc*min:sc*max]
set yrange[sc*min:sc*max]
set size ratio -1

plot 'datafile'
stats“datafile”使用1:2 nooutput
最小=(统计最小值y<统计最小值x?统计最小值y:统计最小值x)
最小=(统计数据>统计数据?统计数据?统计数据:统计数据)
sc=1.05
设置X范围[sc*最小值:sc*最大值]
设置Y范围[sc*最小值:sc*最大值]
设置大小比率-1
打印“数据文件”

感谢您提供的解决方案。然而,这种方法相当令人沮丧,因为我正在使用
multiplot
从数据文件的不同列绘制4个图形。对每个数据集都这样做并不理想,但可行。是的,的确如此。我更新了我的答案,向您展示了如何将所有这些内容放在一个字符串中,并使用
eval
使其可重用。
stats 'datafile' using 1:2 nooutput
min = (STATS_min_y < STATS_min_x ? STATS_min_y : STATS_min_x)
min = (STATS_max_y > STATS_max_x ? STATS_max_y : STATS_max_x)

sc = 1.05
set xrange[sc*min:sc*max]
set yrange[sc*min:sc*max]
set size ratio -1

plot 'datafile'