Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GNUplotting带宽,每小时两条_Gnuplot - Fatal编程技术网

GNUplotting带宽,每小时两条

GNUplotting带宽,每小时两条,gnuplot,Gnuplot,大家好,我只想在一个图表中绘制每小时的上/下摘要。我在一个柱状图中一小时一小时地思考,其中一个柱状图向上,另一个柱状图显示下载速度。花了数小时计算出发送(向上)的一个条,而不是接收(向下)的第三个条。一个Gnuplot可以帮助我吗?请提供任何改进,使它看起来更好吗?非常感谢 set term svg size 800,600 fname "Helvetica Neue" fsize 9 rounded dashed set xdata time set timefmt "%s" set form

大家好,我只想在一个图表中绘制每小时的上/下摘要。我在一个柱状图中一小时一小时地思考,其中一个柱状图向上,另一个柱状图显示下载速度。花了数小时计算出发送(向上)的一个条,而不是接收(向下)的第三个条。一个Gnuplot可以帮助我吗?请提供任何改进,使它看起来更好吗?非常感谢

set term svg size 800,600 fname "Helvetica Neue" fsize 9 rounded dashed
set xdata time
set timefmt "%s"
set format x "%H\n%Y-%m-%d"
# Convert bytes to megabytes
set format y '%.0s%cB'
set style fill solid 0.7 border
plot '-' using 1:2 with boxes
1450848960 285806.25 206760
1450849177 169618.75 149460
1450850400 114761.625 101802.375
1450854001 66813.125 61197.375
1450857600 754362.5 580135
1450861200 21886.375 19150.5
1450864800 69255.875 63496.5
1450868400 60622.625 45791
1450872000 802862.5 628208.75
1450875600 818066.25 630898.75
1450879200 860511.25 646103.75
1450882800 841318.75 605322.5
1450886400 717462.5 609187.5
1450890000 768860 629053.75
1450893600 825708.75 595426.25
1450897200 826900 635977.5
1450900800 747992.5 582123.75
1450904400 747561.25 577085
1450908000 782548.75 542241.25
1450911600 817128.75 632105
1450915200 842408.75 605215
1450918800 808897.5 644612.5
1450922400 737481.25 551455
1450926000 789057.5 612383.75
1450929600 849720 639773.75

如果有任何更好的方法尝试绘制上/下带宽,请让我知道。这是我用来生成上述GNUplot命令的示例。

使用
框打印样式时,必须手动将框排列在彼此旁边。在下面的示例中,我对内联数据使用gnuplot-herdoc(从版本5开始提供),因此可以重用它:

$data <<EOD
1450849177 169618.75 149460
1450850400 114761.625 101802.375
1450854001 66813.125 61197.375
1450857600 754362.5 580135
1450861200 21886.375 19150.5
1450864800 69255.875 63496.5
1450868400 60622.625 45791
1450872000 802862.5 628208.75
1450875600 818066.25 630898.75
1450879200 860511.25 646103.75
1450882800 841318.75 605322.5
1450886400 717462.5 609187.5
1450890000 768860 629053.75
1450893600 825708.75 595426.25
1450897200 826900 635977.5
1450900800 747992.5 582123.75
1450904400 747561.25 577085
1450908000 782548.75 542241.25
1450911600 817128.75 632105
1450915200 842408.75 605215
1450918800 808897.5 644612.5
1450922400 737481.25 551455
1450926000 789057.5 612383.75
1450929600 849720 639773.75
EOD

set term svg size 800,600 fname "Helvetica Neue" fsize 9 rounded dashed
set xdata time
set timefmt '%s'
set style fill solid 0.7 border
set boxwidth 1800 absolute
plot $data using (timecolumn(1) - 1800):2 with boxes title 'up',\
     '' using 1:2 with boxes title 'down'

$data由于您需要两个打印两个不同的数据集(即,上带和下带),从stdin(
plot'-'…
)读取的方法将无法工作-除非您提供两次输入数据。有关更多详细信息,请参见此

因此,我建议将输入数据写入临时文件
tempin

绘图现在非常简单,使用直方图可以自动对输入进行聚类:

set style data histogram
set style histogram cluster gap 1
set style fill solid border -1
set boxwidth 0.9
set xtic rotate by -45 scale 0 font ",8"
set key top left

# Convert bytes to megabytes
set format y '%.0s%cB'

plot 'tempin' using 2:xticlabels(strftime("%H:00 %Y-%m-%d",column(1)-946684800)) t 'up', '' u 3 t 'down'
输出如下所示

注意,我已经用gnuplot4.4测试了这个示例。如果您使用的是gnuplot 5.0,则可能必须将
strftime(“%H:00%Y-%m-%d”,第(1)-946684800列)更改为
strftime(“%H:00%Y-%m-%d”,第(1)列))
,因为
0
的时间已从“2000年1月1日”更改为“1970年1月1日”。

(最后一句话:如果你想公布结果,数字和单位之间应该有空格:
700kB
->
700kB

谢谢!你能解释一下“1800”值的用法吗,尤其是在时间列中?Tbh在您的示例中,时间的格式不正确。1800是半小时(秒)。我知道,输出时间格式是错误的,但我删除了所有与问题无关的设置。谢谢!有了@Christoph的heredoc,我想我有一个很好的解决方案: