0

我对 tcl/tk 还很陌生,我正在尝试创建一个允许我为 x 轴示例设置时间范围的条形图:
Link to pic of a time graph

我可以用日期来做,像这样:

set s [::Plotchart::createXYPlot .c [list [clock scan 2006-01-01] [clock scan 2007-01-01] ""] {0.0 100.0 20.0} \
      -xlabels {2006-01-01 2006-06-01 2007-01-01}]

但是当我尝试输入一个时间而不是两个日期时,它不起作用。谢谢

4

1 回答 1

0

使用 时clock scan,您可以很容易地解析日期和时间(结果精确到秒级)。但是,最好指定您期望的时间格式,如果您只是解析时间,则选择一个固定的时刻作为基线。当这样的事情变得普遍时,最好编写一个帮助程序:

# This is just for parsing time-of-day, *NOT DATES*.
# Handles both HH:MM and HH:MM:SS...
proc timestamp {timeString} {
    if {[scan $timeString %d:%d:%d dummy dummy dummy] == 3} {
        clock scan $timeString -format %H:%M:%S -base 0 -gmt 1
    } else {
        clock scan $timeString -format %H:%M -base 0 -gmt 1
    }
}

# This should be recognizably similar
set s [::Plotchart::createXYPlot .c \
    [list [timestamp 2:40] [timestamp 7:20] [timestamp 12:00:19]] \
    {0.0 100.0 20.0} \
    -xlabels {2:40 7:20 12:00:19}]

当然,如果你有时间和日期,那么你可以通过选择不同的格式来做得更好。

于 2013-05-21T14:09:04.850 回答