質問

散布図の傾向線の計算に関する投稿(グラフのトレンドラインを計算するにはどうすればよいですか?)は非常に役立ちますが、x軸が整数ではなくDateTimeフィールドであるグラフでトレンドラインを見つける方法について興味があります。たとえば、時間の経過とともにメーリングリストの購読者数をグラフ化する場合を考えてみましょう。

1月1日:サブスクライバー100人
1月2日:登録者105人
1月5日:登録者120人
1月10日:登録者117人
など...

私が直面している問題は、これの「実行」(デルタx)部分を把握することです...間隔が等間隔にならないため、単一の時間経過単位を想定することはできません各測定の間。なんらかの規模を考え出さなければならないという予感がありますが、そこに行き詰まっています。

x軸がDateTimeフィールドである場合、誰でもトレンドラインを計算する方法を説明できますか? (コードサンプルを投稿する場合は、C#、VB.NET、またはJavaをお勧めします!)

役に立ちましたか?

解決

一種の線形補間を行う必要があります。日付と時刻を線形スケールに変換する必要があります。幸いなことに、この規模を選択できます。プロットの開始から何分、または秒、または時間が経過したかを計算します。これを「実行」として使用できます。部分。

あなたの例では、休みを取ることができます:

1月1日:0日、サブスクライバー100人 1月2日:1日、登録者105人 1月5日:4日間、登録者120人 1月10日:9日間、登録者117人

他のヒント

いつでも日付を整数に変換できます

ウェブでこの例を示します:

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日、2日、&の平均加入者数を取ります。 5と1月7日にポイントをプロットします。次に、1月10日の平均を取得します。 13、1月14日などにポイントをプロットします。

多くの履歴データがある場合は、1か月の間隔を使用します。そうでない場合は、四半期ごとにデータを調整した方がよいでしょう。

起点日を指定し、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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top