关于散点图(How do I calculate a trendline for a graph?)上计算趋势线的帖子非常有用,但我很好奇如何在图表上找到趋势线,其中x轴是DateTime字段而不是整数。例如,考虑一下在一段时间内绘制邮件列表订阅者数量的情况:
1月1日:100名订户
1月2日:105名订户
1月5日:120名订户
1月10日:117名订户
等...
我遇到的问题是找出这个'运行'(delta x)部分...因为间隔不是均匀间隔的,所以我们不能只假设一个时间单位通过每次测量之间。我有预感,我将不得不计算某种规模,但我被困在那里。
当x轴是DateTime字段时,有人可以解释如何计算趋势线吗? (如果您发布代码示例,将非常感谢C#,VB.NET或Java!)
答案 0 :(得分:3)
您始终可以将日期转换为整数
网络提供了这个例子:
DateTime given = new DateTime(2008, 7, 31, 10, 0, 0);
TimeSpan t = given.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0));
long unixTime = (long) t.TotalSeconds;
答案 1 :(得分:1)
你必须做一种线性插值。您需要将日期和时间转换为线性比例。好消息是你可以选择这个规模。因此,计算自绘图开始以来经过的分钟数,秒数或小时数。然后,您可以将其用作“运行”部分。
在你的例子中,我们可以离开日子:
1月1日:0天,100位订阅者 1月2日:1天,105名订阅者 1月5日:4天,120名订阅者 1月10日:9天,117位订阅者
答案 2 :(得分:0)
即使您的样本间距不均匀,您的趋势线仍然可以持续“运行”。
例如,您可以选择1周的间隔。在这种情况下,取1月1日的平均订户数量,& 5并在1月7日绘制一个点。接下来取1月10日的平均值。 13,并在1月14日绘制一个点等。
如果您有大量的历史数据,请每隔1个月使用一次,或者每季度更适合您的数据。
答案 3 :(得分:0)
指定原始日期并将其视为x = 1。 如果您想更具体,请选择小时或8小时。
The first day:
jan 1, 2006 -> x = 1
45 days later
February 13th?? -> x = 45
2 years later:
jan 1, 2008 -> x = 730