我想绘制一个堆积的直方图。结果与Using gnuplot for stacked histograms不同。
以下是数据:
05/11/2014 10:00:00 1 5 1
05/12/2014 22:00:00 3 5 1
05/13/2014 13:00:00 4 4 1
05/14/2014 09:00:00 3 4 1
05/15/2014 04:00:00 1 2 1
前两列用空格分隔,其余列用制表符分隔。 x轴应该是日期和时间。
以下gnuplot脚本存在问题:
set title "Test"
set key invert reverse Left outside
set key autotitle columnheader
set style data histogram
set style histogram rowstacked
set style fill solid border -1
set boxwidth 0.75
set datafile separator '\t'
set xdata time
set timefmt '%M/%D/%Y %H:%M:%S'
set format x '%M/%D %H'
plot 'test.dat' using 2:xtic(1) title 'Col1', '' using 3 title 'Col2', '' using 4 title 'Col3'
上述脚本将导致错误:需要完全使用x时间数据的规范。但是,如果取消设置xdata,它就可以工作。
答案 0 :(得分:3)
set xdata time
部分确实是错误的。
直方图与其他绘图样式略有不同:这些框放置在整数x值0
,1
,2
等处,并获得自定义标签,在您的case是第一列中包含的时间信息。所以x轴不是实时轴。
以下脚本适用于4.6.4:
set title "Test"
set key invert reverse Left outside
set style data histogram
set style histogram rowstacked
set style fill solid border -1
set boxwidth 0.75
set datafile separator '\t'
plot 'test.dat' using 2:xtic(1) title 'Col1', '' using 3 title 'Col2', '' using 4 title 'Col3'
如果要更改标签使用的时间格式,则必须手动解析时间字符串。 xtic(1)
相当于xtic(strcol(1))
。您可以使用strcol(1)
和strptime
处理此数据,而不是使用包含第一列中信息的strftime
作为字符串,以便更改显示的时间信息:
set title "Test"
set key invert reverse Left outside
set style data histogram
set style histogram rowstacked
set style fill solid border -1
set boxwidth 0.75
set datafile separator '\t'
plot 'test.dat' using 2:xtic(strftime('%m/%d %Hh', strptime('%m/%d/%Y %H:%M:%S', strcol(1)))) title 'Col1',\
'' using 3 title 'Col2', '' using 4 title 'Col3'
答案 1 :(得分:1)
如何简单地使用双引号内的日期和时间值。所以你的数据文件是:
"05/11/2014 10:00:00" 1 5 1
"05/12/2014 22:00:00" 3 5 1
"05/13/2014 13:00:00" 4 4 1
"05/14/2014 09:00:00" 3 4 1
"05/15/2014 04:00:00" 1 2 1
您的绘图脚本将是:
set title "Test"
set key invert reverse Left outside
#set key autotitle columnheader
set style data histogram
set style histogram rowstacked
set style fill solid border -1
set boxwidth 0.75
set xtics border in scale 0,0 nomirror rotate by 90 offset character 0, -9, 0
plot 'test.dat' using 2:xtic(1) title 'Col1', '' using 3 title 'Col2', '' using 4 title 'Col3'
结果情节将是: