Time Gnuplot使用其他时间格式给出2列,而不是24列

Time Gnuplot使用其他时间格式给出2列,而不是24列,time,format,gnuplot,Time,Format,Gnuplot,我有下一个问题。我有一个像这样的数据文件 1412481600,304,0,0,0,304,0 1412485200,385,0,0,0,383,0 1412488800,332,0,0,0,331,0 1412492400,359,0,0,0,355,0 我已将格式更改为 08-11-2014-17:00,390,0,27,417 08-11-2014-18:00,474,0,0,474 08-11-2014-19:00,467,0,0,467 08-11-2014-20:00,687,0,

我有下一个问题。我有一个像这样的数据文件

1412481600,304,0,0,0,304,0
1412485200,385,0,0,0,383,0
1412488800,332,0,0,0,331,0
1412492400,359,0,0,0,355,0
我已将格式更改为

08-11-2014-17:00,390,0,27,417
08-11-2014-18:00,474,0,0,474
08-11-2014-19:00,467,0,0,467
08-11-2014-20:00,687,0,0,687
我更改了gnuplotscript

一是,

set timemt x“%s”

到现在为止

set timemt x“%d-%m-%Y-%H:%m”

在新的情况下,gnuplot给了我两列,它们被覆盖了 与其他栏目。 我做错了什么,还是忘记了

这里是一个错误的例子;

这是完整的代码

file = 'uur.txt'
set output "dag.png"
set datafile separator ","
set linestyle 1 lt 1 lc rgb "black" 
set bmargin 5 # witruimte onder grafiek

set boxwidth 600 absolute
set style boxplot
set border back

dy=500 # zie y waarde terminal
# Hier worden de maximale en minimale y-waarden van gnuplot bepaald.
set terminal unknown
plot "<tail -24 ".file."" using :(-$5) w p, '' u :4 w p
ymax= GPVAL_Y_MAX
ymin= GPVAL_Y_MIN
ptmax=ymax*dy/(ymax-ymin)
ptmin=ymin*dy/(ymax-ymin)
replot

set terminal pngcairo truecolor enhanced size 1200, 500 font "Courier Bold,10" background rgb "#CFCFFF"



stats "<tail -24 ".file."" using 2:3 nooutput
afnt = STATS_sum_x
gelt = STATS_sum_y
afn  = afnt/24
gel  = gelt/24

stats "< tail -24 ".file."" using 4:5 nooutput
zon    = STATS_max_x
zont   = STATS_sum_x
geb    = STATS_max_y
gebt   = STATS_sum_y
zonavg = STATS_sum_x/24
gebavg = STATS_sum_y/24

stats "<tail -1 ".file."" using (strptime('%d-%m-%y %H:%M', stringcolumn(1))) nooutput
tijd = strftime('%H:%M', STATS_max)

set palette defined (-(geb) "#ee0000", 0 "#0000cc", 0 "#00aa00", (zon) "#ff0000")
unset colorbox

set title 'Alle energie-stromen van de laatste 24 uur.' font "Courier-Bold,12"

set xdata time
set timefmt '%d-%m-%y-%H:%M'
set xtics format "%H:%M"  # dit is de opmaak zoals je hem gaat zien
set xtics 3600
set mxtics 0 # zet sub(minor)streepjes op de x-as 
set grid ls 1 lw 1 lc rgb "#a0a0a0"
set autoscale xfix

set ytics font "Helvetica,8"
set mytics 2
set y2tics axis out 0

set ylabel "V e r m o g e n in Watt" offset 2,1

set object rect from screen 0.05, screen 0.04 to screen 0.08, screen 0.06 fc rgb '#00B900' front
set object rect from sc 0.05, sc 0.01 to sc 0.08, sc 0.03 fc rgb 'blue' front
set object rect from sc 0.25, sc 0.04 to sc 0.28, sc 0.06 fc rgb 'green'
set object 10 rect from sc 0.25, sc 0.01 to sc 0.28, sc 0.03  fc rgb "red" fs solid 1.0 front
set object 10 rect from sc 0.25, sc 0.01 to sc 0.28, sc 0.03  fc rgb "#5555ff" fs solid 1.0 front

# graph x, y
set label font "Courier Bold, 10" # grootte font tbv labels in het grafiek
set label  1 sprintf("Energiestromen gemiddeld per uur.") at screen 0.05,0.08 tc rgb "black" front
set label  2 sprintf("Zon      = %4.0f W/h",zonavg) at screen 0.085,0.05 front
set label  3 sprintf("Gebruikt = %4.0f W/h",gebavg) at screen 0.085,0.025 front
set label  4 sprintf("Geleverd  = %4.0f W/h",gel) at screen 0.285,0.05 front
set label  5 sprintf("Afgenomen = %4.0f W/h",afn) at screen 0.285,0.025 front
set label  6 sprintf("Energiestromen van de afgelopen 24 uur.") at screen 0.5,0.08 front
set label  7 sprintf("Gebruikt (%dW) = zon (%dW) - geleverd (%dW) + afgenomen (%dW)", gebt, zont, gelt, afnt) at screen 0.5,0.05  tc rgb "black" front
set label 11 sprintf("Logtijd: ") at screen 0.05,0.92 font "Courier-Bold,8" front
set label 12 sprintf(tijd) at screen 0.091,0.92 font "Courier-Bold,8" front

set style fill solid noborder# was transparent solid 0.5 border 0.5

n = 51
# n is het aantal kolommen wat wordt opgebouwd teneinde een gradient te krijgen. Hoe hoger "n" des te vloeiender de gradient
# De 1e serie is zon, de 2e serie is geleverd, de 3e serie is gebruik en de 4e serie is afgenomen.
# Het getal 12 is het aantal punten van één karakter Courier-Bold 10 hetgeen hier is gebruikt voor de labels.

plot for [i=n:0:-1] "<tail -24 ".file."" u ($1-600):(($4/n)*i):(($4/n)*i) w boxes lc palette notitle,\
            "<tail -24 ".file."" u ($1-600):4:( $4>0 && ($4/ymax*ptmax)> (12 * strlen(sprintf("%d", $4))) ? $4 : sprintf("")) w labels right rotate font ",10" tc rgb "white" offset 0,-0.1 notitle,\
            "<tail -24 ".file."" u ($1-600):4:( $4>0 && ($4/ymax*ptmax)<=(12 * strlen(sprintf("%d", $4))) ? $4 : sprintf("")) w labels  left rotate font ",10" tc rgb "black" offset 0,0.1  notitle,\
            "<tail -24 ".file."" u ($1-600):4 w boxes lc rgb "black" fill empty  notitle,\
            "<tail -24 ".file."" u ($1+600):3 w boxes lt 1 lc rgb "green" fillstyle solid  notitle,\
            "<tail -24 ".file."" u ($1+600):3 w boxes lc rgb "black" fill empty notitle,\
            "<tail -24 ".file."" u ($1+600):3:( $3>0 && ($3/ymax*ptmax)> (12 * strlen(sprintf("%d", $3))) ? $3 : sprintf("")) w labels right rotate font ",10" tc rgb "blue"  offset 0,-0.1 notitle,\
            "<tail -24 ".file."" u ($1+600):3:( $3>0 && ($3/ymax*ptmax)<=(12 * strlen(sprintf("%d", $3))) ? $3 : sprintf("")) w labels  left rotate font ",10" tc rgb "black" offset 0,0.1  notitle,\
     for [i=n:0:-1] "<tail -24 ".file."" u ($1-600):((-($5)/n)*i):((-($5)/n)*i) w boxes lc palette notitle,\
            "<tail -24 ".file."" u ($1-600):(-$5):( $5>0 && ($5/ymax*ptmax)> (12 * strlen(sprintf("%d", $5))) ? -$5 : sprintf("")) w labels left  rotate font ",10" tc rgb "white" offset 0,0.1  notitle,\
            "<tail -24 ".file."" u ($1-600):(-$5):( $5>0 && ($5/ymax*ptmax)<=(12 * strlen(sprintf("%d", $5))) ? -$5 : sprintf("")) w labels right rotate font ",10" tc rgb "black" offset 0,-0.1 notitle,\
            "<tail -24 ".file."" u ($1-600):(-$5) w boxes lc rgb "black" fill empty  notitle,\
            "<tail -24 ".file."" u ($1+600):(-$2) w boxes lc rgb "#5555ff" fillstyle solid notitle,\
            "<tail -24 ".file."" u ($1+600):(-$2) w boxes lc rgb "black" fill empty notitle,\
            "<tail -24 ".file."" u ($1+600):(-$2):( $2>0 && ($2/ymax*ptmax)> (12 * strlen(sprintf("%d", $2))) ? -$2 : sprintf("")) w labels left  rotate font ",10" tc rgb "white" offset 0,0.1  notitle,\
            "<tail -24 ".file."" u ($1+600):(-$2):( $2>0 && ($2/ymax*ptmax)<=(12 * strlen(sprintf("%d", $2))) ? -$2 : sprintf("")) w labels right rotate font ",10" tc rgb "black" offset 0,-0.1 notitle
file='uur.txt'
设置输出“dag.png”
设置数据文件分隔符“,”
将线型1 lt 1 lc rgb设置为“黑色”
设置bmargin 5#witruimte onder grafiek
将boxwidth设置为600绝对值
集样式箱线图
使边界后退
dy=500#zie y waarde终端
#他是一个最大的最小的y-waarden van gnuplot bepaald。
设置终端未知

绘图“有两个问题:首先,在所有情况下,您必须使用正确的时间格式
%d-%m-%Y-%H:%m
(在您发布的脚本中,您有一个小的
Y
,并且在stats命令中缺少一个破折号)

其次,为了正确解析日期,您必须在
using
语句中使用
时间列(1)
而不是
$1
。当您有时间戳时,它工作正常,因为它只是一个数字,但解析字符串失败。因此,您的完整脚本应该是

file = 'uur.txt'
set output "dag.png"
set datafile separator ","
set linestyle 1 lt 1 lc rgb "black" 
set bmargin 5 # witruimte onder grafiek

set boxwidth 600 absolute
set style boxplot
set border back

dy=500 # zie y waarde terminal
# Hier worden de maximale en minimale y-waarden van gnuplot bepaald.
set terminal unknown
plot "<tail -24 ".file."" using :(-$5) w p, '' u :4 w p
ymax= GPVAL_Y_MAX
ymin= GPVAL_Y_MIN
ptmax=ymax*dy/(ymax-ymin)
ptmin=ymin*dy/(ymax-ymin)
replot

set terminal pngcairo truecolor enhanced size 1200, 500 font "Courier Bold,10" background rgb "#CFCFFF"



stats "<tail -24 ".file."" using 2:3 nooutput
afnt = STATS_sum_x
gelt = STATS_sum_y
afn  = afnt/24
gel  = gelt/24

stats "< tail -24 ".file."" using 4:5 nooutput
zon    = STATS_max_x
zont   = STATS_sum_x
geb    = STATS_max_y
gebt   = STATS_sum_y
zonavg = STATS_sum_x/24
gebavg = STATS_sum_y/24

stats "<tail -1 ".file."" using (strptime('%d-%m-%Y-%H:%M', stringcolumn(1))) nooutput
tijd = strftime('%H:%M', STATS_max)

set palette defined (-(geb) "#ee0000", 0 "#0000cc", 0 "#00aa00", (zon) "#ff0000")
unset colorbox

set title 'Alle energie-stromen van de laatste 24 uur.' font "Courier-Bold,12"

set xdata time
set timefmt '%d-%m-%Y-%H:%M'
set xtics format "%H:%M"  # dit is de opmaak zoals je hem gaat zien
set xtics 3600
set mxtics 0 # zet sub(minor)streepjes op de x-as 
set grid ls 1 lw 1 lc rgb "#a0a0a0"
set autoscale xfix

set ytics font "Helvetica,8"
set mytics 2
set y2tics axis out 0

set ylabel "V e r m o g e n in Watt" offset 2,1

set object rect from screen 0.05, screen 0.04 to screen 0.08, screen 0.06 fc rgb '#00B900' front
set object rect from sc 0.05, sc 0.01 to sc 0.08, sc 0.03 fc rgb 'blue' front
set object rect from sc 0.25, sc 0.04 to sc 0.28, sc 0.06 fc rgb 'green'
set object 10 rect from sc 0.25, sc 0.01 to sc 0.28, sc 0.03  fc rgb "red" fs solid 1.0 front
set object 10 rect from sc 0.25, sc 0.01 to sc 0.28, sc 0.03  fc rgb "#5555ff" fs solid 1.0 front

# graph x, y
set label font "Courier Bold, 10" # grootte font tbv labels in het grafiek
set label  1 sprintf("Energiestromen gemiddeld per uur.") at screen 0.05,0.08 tc rgb "black" front
set label  2 sprintf("Zon      = %4.0f W/h",zonavg) at screen 0.085,0.05 front
set label  3 sprintf("Gebruikt = %4.0f W/h",gebavg) at screen 0.085,0.025 front
set label  4 sprintf("Geleverd  = %4.0f W/h",gel) at screen 0.285,0.05 front
set label  5 sprintf("Afgenomen = %4.0f W/h",afn) at screen 0.285,0.025 front
set label  6 sprintf("Energiestromen van de afgelopen 24 uur.") at screen 0.5,0.08 front
set label  7 sprintf("Gebruikt (%dW) = zon (%dW) - geleverd (%dW) + afgenomen (%dW)", gebt, zont, gelt, afnt) at screen 0.5,0.05  tc rgb "black" front
set label 11 sprintf("Logtijd: ") at screen 0.05,0.92 font "Courier-Bold,8" front
set label 12 sprintf(tijd) at screen 0.091,0.92 font "Courier-Bold,8" front

set style fill solid noborder# was transparent solid 0.5 border 0.5

n = 51
# n is het aantal kolommen wat wordt opgebouwd teneinde een gradient te krijgen. Hoe hoger "n" des te vloeiender de gradient
# De 1e serie is zon, de 2e serie is geleverd, de 3e serie is gebruik en de 4e serie is afgenomen.
# Het getal 12 is het aantal punten van één karakter Courier-Bold 10 hetgeen hier is gebruikt voor de labels.

plot for [i=n:0:-1] "<tail -24 ".file."" u (timecolumn(1)-600):(($4/n)*i):(($4/n)*i) w boxes lc palette notitle,\
            "<tail -24 ".file."" u (timecolumn(1)-600):4:( $4>0 && ($4/ymax*ptmax)> (12 * strlen(sprintf("%d", $4))) ? $4 : sprintf("")) w labels right rotate font ",10" tc rgb "white" offset 0,-0.1 notitle,\
            "<tail -24 ".file."" u (timecolumn(1)-600):4:( $4>0 && ($4/ymax*ptmax)<=(12 * strlen(sprintf("%d", $4))) ? $4 : sprintf("")) w labels  left rotate font ",10" tc rgb "black" offset 0,0.1  notitle,\
            "<tail -24 ".file."" u (timecolumn(1)-600):4 w boxes lc rgb "black" fill empty  notitle,\
            "<tail -24 ".file."" u (timecolumn(1)+600):3 w boxes lt 1 lc rgb "green" fillstyle solid  notitle,\
            "<tail -24 ".file."" u (timecolumn(1)+600):3 w boxes lc rgb "black" fill empty notitle,\
            "<tail -24 ".file."" u (timecolumn(1)+600):3:( $3>0 && ($3/ymax*ptmax)> (12 * strlen(sprintf("%d", $3))) ? $3 : sprintf("")) w labels right rotate font ",10" tc rgb "blue"  offset 0,-0.1 notitle,\
            "<tail -24 ".file."" u (timecolumn(1)+600):3:( $3>0 && ($3/ymax*ptmax)<=(12 * strlen(sprintf("%d", $3))) ? $3 : sprintf("")) w labels  left rotate font ",10" tc rgb "black" offset 0,0.1  notitle,\
     for [i=n:0:-1] "<tail -24 ".file."" u (timecolumn(1)-600):((-($5)/n)*i):((-($5)/n)*i) w boxes lc palette notitle,\
            "<tail -24 ".file."" u (timecolumn(1)-600):(-$5):( $5>0 && ($5/ymax*ptmax)> (12 * strlen(sprintf("%d", $5))) ? -$5 : sprintf("")) w labels left  rotate font ",10" tc rgb "white" offset 0,0.1  notitle,\
            "<tail -24 ".file."" u (timecolumn(1)-600):(-$5):( $5>0 && ($5/ymax*ptmax)<=(12 * strlen(sprintf("%d", $5))) ? -$5 : sprintf("")) w labels right rotate font ",10" tc rgb "black" offset 0,-0.1 notitle,\
            "<tail -24 ".file."" u (timecolumn(1)-600):(-$5) w boxes lc rgb "black" fill empty  notitle,\
            "<tail -24 ".file."" u (timecolumn(1)+600):(-$2) w boxes lc rgb "#5555ff" fillstyle solid notitle,\
            "<tail -24 ".file."" u (timecolumn(1)+600):(-$2) w boxes lc rgb "black" fill empty notitle,\
            "<tail -24 ".file."" u (timecolumn(1)+600):(-$2):( $2>0 && ($2/ymax*ptmax)> (12 * strlen(sprintf("%d", $2))) ? -$2 : sprintf("")) w labels left  rotate font ",10" tc rgb "white" offset 0,0.1  notitle,\
            "<tail -24 ".file."" u (timecolumn(1)+600):(-$2):( $2>0 && ($2/ymax*ptmax)<=(12 * strlen(sprintf("%d", $2))) ? -$2 : sprintf("")) w labels right rotate font ",10" tc rgb "black" offset 0,-0.1 notitle
file='uur.txt'
设置输出“dag.png”
设置数据文件分隔符“,”
将线型1 lt 1 lc rgb设置为“黑色”
设置bmargin 5#witruimte onder grafiek
将boxwidth设置为600绝对值
集样式箱线图
使边界后退
dy=500#zie y waarde终端
#他是一个最大的最小的y-waarden van gnuplot bepaald。
设置终端未知

情节“到目前为止,你所做的似乎还不错。但是如果你不发布代码,就很难说代码出了什么问题。由于绘图的复杂性,您可以发布/尝试一个简单的示例,其中只绘制数据与时间的关系。一个猜测是:您用
分隔列,而gnuplot需要空格。您可以通过
设置数据文件分隔符“,”
Thanx来更改此设置。对于您的反应,我已将代码放在我的原始帖子中。该脚本仍然太复杂。我们不想调试您的整个脚本。如果没有任何数据,我们也无法复制。有一点可能是,对于
stats
命令,您使用的时间格式为
%d-%m-%y%H:%m
。这可能与您的常规时间相同,即
%d-%m-%Y-%H:%m
。很抱歉,这没有什么区别。我把数据文件的链接放在我的帖子里,希望你能在这里用它做点什么。我很想知道答案。提前(再次)谢谢。太好了,我就知道你会发现的。非常感谢您,您对gnuplot的了解是难以置信的!唉,我就知道你最终会放弃我。我希望我还在使用gnuplot——在去gnuplot gold的路上!恭喜:-)。@mgilson谢谢:)不过,要获得gnuplot金牌还有一段路要走。。。我半年前完成了论文,谁知道我能跟上gnuplot的发展多久;)