gpt4 book ai didi

crash - 如果在给定时间内没有可用数据,则Gnuplot不会绘制数据

转载 作者:行者123 更新时间:2023-12-02 07:16:08 24 4
gpt4 key购买 nike

Gnuplot从一个名为file.dat的巨大文件中读取天气数据,并绘制给定日期和时间的天气数据。

但是如果没有给定日期和时间(xrange)的数据,则gnuplot 会使崩溃。

如何判断gnuplot,(如果没有给定日期和时间的数据),如何在输出图像中显示文本

("There is no data available, I am sorry")

错误,如果没有可用数据:
line 0: all points y2 value undefined!

由gnuplot加载的 script.dem文件:
reset


#SET TERMINAL
set term svg
set output 'temp-verlauf.svg'
set title "Temperaturverlauf"

#Axes label
set xlabel "Messzeitpunkt"
set ylabel "Luftfeuchte/Temperatur"
set y2label "Luftdruck"

#Axis setup
set xdata time # x-Achse wird im Datums/Zeitformat skaliert
set timefmt "%d.%m.%Y\t%H:%M:%S" # Format Zeitangaben yyyy.mm.dd_hh:mm:ss
set format x "%H:%M" # Format für die Achsenbeschriftung


#Axis ranges
set yrange [0:60] # die y-Achse geht von:bis

#Tics
set ytics nomirror
set y2tics nomirror

#OTHER
set datafile separator "\t"
set xrange ["06.11.2014 14:00:00":"07.11.2014 21:00:00"]

plot \
"file.dat" every 10 using 1:5 title "Luftfeuchte" with lines, \
"file.dat" every 10 using 1:6 title "Temperatur" with lines, \
"file.dat" every 10 using 1:7 title "Luftdruck" with lines axes x1y2, \
"file.dat" every 10 using 1:17 title "Niederschlagsintensitaet Synop (4677)" with lines

编辑

感谢用户“bibi”。
他有个好主意,如果file.dat中没有可用内容,则让gnuplot绘图-1获得数据。

该脚本将如下所示:
reset


#SET TERMINAL
set term svg
set output 'temp-verlauf.svg'
set title "Temperaturverlauf"

#Axes label
set xlabel "Messzeitpunkt"
set ylabel "Luftfeuchte/Temperatur"
set y2label "Luftdruck"

#Axis setup
set xdata time # x-Achse wird im Datums/Zeitformat skaliert
set timefmt "%d.%m.%Y\t%H:%M:%S" # Format Zeitangaben yyyy.mm.dd_hh:mm:ss
set format x "%H:%M" # Format für die Achsenbeschriftung


#Axis ranges
set yrange [0:60] # die y-Achse geht von:bis

#Tics
set ytics nomirror
set y2tics nomirror

#OTHER
set datafile separator "\t"
set xrange ["06.11.2014 14:00:00":"07.11.2014 21:00:00"]

plot \
-1 axes x1y2, \
-1 axes x1y1, \
"file.dat" every 10 using 1:5 title "Luftfeuchte" with lines, \
"file.dat" every 10 using 1:6 title "Temperatur" with lines, \
"file.dat" every 10 using 1:7 title "Luftdruck" with lines axes x1y2, \
"file.dat" every 10 using 1:17 title "Niederschlagsintensitaet Synop (4677)" with lines

最佳答案

我想到的最简单的解决方案是在绘图区域外绘制一条水平线(-1可以,因为您有set yrange [0:60]):

plot \
-1, \
"file.dat" every 10 using 1:5 title "Luftfeuchte" with lines, \
"file.dat" every 10 using 1:6 title "Temperatur" with lines, \
"file.dat" every 10 using 1:7 title "Luftdruck" with lines axes x1y2, \
"file.dat" every 10 using 1:17 title "Niederschlagsintensitaet Synop (4677)" with lines

此外,如果发生奇怪的事情,gnuplot内部变量 GPVAL_ERRNO将为非零值,您可以检查并在屏幕上打印横幅。

关于crash - 如果在给定时间内没有可用数据,则Gnuplot不会绘制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34515832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com