4

我有一组具有timevalue属性的对象。看起来像这样。

更新:具有纪元时间而不是时间字符串的数据集

[{datetime:1383661634, value: 43},{datetime:1383661856, value: 40}, {datetime:1383662133, value: 23}, {datetime:1383662944, value: 23}]

数组远大于此。可能是 6 位长度。我打算建立一个图表来表示这个数组。由于显而易见的原因,我不能使用所有数据来构建这个图表(价值与时间);所以我需要随着时间的推移对其进行标准化。

所以这是主要问题 - 这些对象的时间戳没有趋势;所以我需要动态选择时间段,在这些时间段中,我要么平均值,要么显示该时间段中的对象计数。

如何计算用户友好的插槽。即每分钟、每小时、每天、八小时左右。我正在考虑从阵列中完成最多 25 个插槽,我在图表上显示了这些插槽。

我希望这有助于理解我的观点。

4

3 回答 3

1

您可以将日期/时间转换为纪元并用于numpy.histogram获取范围:

import random, numpy
l = [ random.randint(0, 1000) for x in range(1000) ]
num_items_bins, bin_ranges = numpy.histogram(l, 25) 
print num_items_bins
print bin_ranges

给出:

[34 38 42 41 43 50 34 29 37 46 31 47 43 29 30 42 38 52 42 44 42 42 51 34 39]
[    1.      40.96    80.92   120.88   160.84   200.8    240.76   280.72
   320.68   360.64   400.6    440.56   480.52   520.48   560.44   600.4
   640.36   680.32   720.28   760.24   800.2    840.16   880.12   920.08
   960.04  1000.  ]
于 2013-11-05T14:47:52.183 回答
1

很难在不知道值的性质的情况下说,压缩值以进行显示是您可以舍弃什么和不能舍弃什么的问题。不过有一些想法:

  1. 直方图
  2. 烛台图
于 2013-11-05T15:04:32.083 回答
0

这个 JSON 和 DateTimes 是作为文本传输的吗?

为什么不将 Date 传输为 long (Int64),并使用一种方法转换为 DateTime 或从 DateTime 转换?根据您可以使用这些实现的语言:

仅此一项就可以为您节省大量空间,因为字符串每个字符 16 位,而长 TimeStamp 将只有 64 位。

于 2013-11-05T14:39:08.903 回答