Gnuplot 如何确定Y2_最大值?

Gnuplot 如何确定Y2_最大值?,gnuplot,Gnuplot,我正在通过gnuplot绘制两个数据集。第一个的值介于约200万到约300万之间。第二个的值从1000到2000 从文件打印并检查显示变量后,所有GPVAL_Y2_MIN设置为正确值,但GPVAL_Y2_MAX错误。奇怪的是GPVAL_Y_MAX也是错误的,但是如果只绘制第一组,我会得到一个相对较好的值 我想为yrange和y2range设置不同的范围,但我无法提前告诉可能的值。当然,我希望尽可能多地填充输出屏幕 我怎么能这么做 编辑:添加当前使用的代码 #!/usr/bin/gnuplot r

我正在通过gnuplot绘制两个数据集。第一个的值介于约200万到约300万之间。第二个的值从1000到2000

从文件打印并检查
显示变量后,所有
GPVAL_Y2_MIN设置为正确值,但GPVAL_Y2_MAX错误。奇怪的是GPVAL_Y_MAX也是错误的,但是如果只绘制第一组,我会得到一个相对较好的值

我想为yrange和y2range设置不同的范围,但我无法提前告诉可能的值。当然,我希望尽可能多地填充输出屏幕

我怎么能这么做

编辑:添加当前使用的代码

#!/usr/bin/gnuplot
reset
# Get max and min value
plot 'test.dat' every ::1 using 3, '' every ::1 using 4
y1_max = GPVAL_Y_MAX;
y1_min = GPVAL_Y_MIN;
y2_max = GPVAL_Y2_MAX;
y2_min = GPVAL_Y2_MIN;
set terminal png size 1024, 768 #output format png
set format y "%.1s %c"
# show png in a window without save
set output '| display png:-'
set yrange [y1_min:y1_max]
set y2range [y2_min:y2_max]
plot 'test.dat' every ::1 using 3 lt rgb '#FF00FF' title "vsize" with line, \
     '' every ::1 using 4 lt rgb '#FF0000' title "rss" with line axes x1y2

如您所见,我首先绘制数据以获得最小值和最大值,然后创建一个终端。

如果没有数据文件可使用,我猜您的问题在于,在第一次过程(收集最小值/最大值)中,您在x1y1轴上绘制两个数据集。在第二次过程中,您将在x1y2轴上绘制第4列,但除了默认值(与自动缩放相反,您硬编码了默认值)之外,您从未实际重置y2范围。换言之:

plot 'test.dat' every ::1 using 3, '' every ::1 using 4 axes x1y2
但这带来了另一个问题——为什么不自动缩放呢

set yrange [*:*]
set y2range [*:*]

您使用的是哪个版本的gnuplot,哪个终端?gnuplot 4.4 patchlevel 3,我使用的是pngCan,您可以发布一个最简单的示例数据集/脚本吗?是的,当然可以!)是的,问题是两个数据都绘制在x1y1轴上(第4行)。谢谢你发现了那个错误!:)我没有使用自动缩放,因为我想设置一个边距。