【问题标题】:Gnuplot, stacked area and custom tic stringsGnuplot、堆叠区域和自定义 tic 字符串
【发布时间】:2018-03-16 17:13:25
【问题描述】:

所以,我有下一个问题。我正在为我自己的 Gnuplot 包装器编写一个 Perl 插件,我需要绘制堆积面积图,但这里有 tic 的问题。

我有以下 datfile(纪元中的日期 - 用于 Perl 函数):

date    c1  c2  c3  c4  c5  c6  c7  c8  c9  c10 c11 c12
1521230521  173 830 988 284 165 577 920 749 409 705 703 601
1521316921  501 691 883 573 325 152 499 526 417 708 259 587
1521403321  33  193 576 106 397 329 801 857 534 559 527 213
1521489721  827 186 910 412 688 650 13  201 222 150 468 353
1521576121  53  425 726 989 362 489 554 986 480 485 414 74
.....

我得到了这个脚本(使用 Perl 脚本中的变量,请注意这一点):

reset
set encoding utf8

set term pngcairo size $w, $h
set datafile separator "\\t"

set key autotitle
set key reverse Left outside
set key samplen 0.25 spacing 1 font "Roboto Mono Medium, 11"
set key bot center horiz
set key height 1

set output "img.png"

set xtics ("16 mar 22:45" 0, ...., "04 apr 22:45" 19) # string generated by perl
set xtics font "Roboto Mono Light, 9" nomirror out 
set ytics font "Roboto Mono Light, 9" nomirror out

set auto y
set tics front

# $rm # set rmargin
# $lm # set lmargin

set grid xtics ytics front
set style data filledcurves x1
set pointsize 0.8

plot for [i=2:".($cols+1).":1] '$datfile' using 1:(sum [col=i:".($cols+1)."] column(col)) title columnheader(i)

我需要让抽动看起来像这样:

但抽动症没有出现:

你可能会问我为什么不使用set xdata time?那是因为如果有很多抽动,抽动会出现无法控制的重叠。这就是为什么我使用这样的严格预先计算的对:

set xtics ("16 mar 22:45" 0, "22 mar 23:02" 6, ...., "04 apr 22:45" 19)

这适用于直方图。

我做错了什么?

【问题讨论】:

    标签: perl gnuplot stacked-area-chart


    【解决方案1】:

    您的抽动超出范围。 x 轴上的实际值取自第 1 列,它们从 1521230521 开始,而不是 0。

    使用正确的“pos”值生成抽动:

    set xtics ("16 mar 22:45" 1521230521, \
               "17 mar 22:45" 1521316921, \
    

    【讨论】:

    • 不,这不是它应该的样子。 0 到 19 的 xtics 代表数据文件中的行数(不包括第一个),以及它在 x 轴上的位置。 perl 使用第一列以我需要的方式对它们进行时间格式化。
    • @genesi5 那么你还必须使用行号来绘制plot ... using 0:(sum ...)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2016-12-19
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多