1
現在、私のデータは両方の軸数値を持つLineSeriesで表示されます。各点のX値は非常に小さい時間間隔です。この値をカスタム方法で表示する必要があります。可能であれば、データにはDateTimeAxis
を使用しないでください。 LinearAxisを特定の方法でフォーマットすることはできますか?LinearAxis DateTimeを表示するStringFormat?
現在、私のデータは両方の軸数値を持つLineSeriesで表示されます。各点のX値は非常に小さい時間間隔です。この値をカスタム方法で表示する必要があります。可能であれば、データにはDateTimeAxis
を使用しないでください。 LinearAxisを特定の方法でフォーマットすることはできますか?LinearAxis DateTimeを表示するStringFormat?
これは私にとってはうまくいくようです。私はここで何かを誤解していないことを願っています。
//Start point of the data (arbitrary in this example)
var startOfData = DateTime.Now.Subtract(TimeSpan.FromDays(1));
//https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
var formatString = "m.ss.fffff";
Func<double, string> labelFormatter =
milliseconds =>
startOfData
.Add(TimeSpan.FromMilliseconds(milliseconds))
.ToString(formatString);
使用例:ここ
var pm = new PlotModel();
pm.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = AxisPosition.Left });
pm.Axes.Add(new OxyPlot.Axes.LinearAxis { Position = AxisPosition.Bottom, LabelFormatter = labelFormatter });
Random random = new Random(Guid.NewGuid().GetHashCode());
var datapoints =
Enumerable.Range(1, 100)
.Select(milliseconds => new DataPoint(milliseconds, random.Next(0, 10)));
var lineSeries = new OxyPlot.Series.LineSeries();
lineSeries.Points.AddRange(datapoints);
pm.Series.Add(lineSeries);
Show(pm);
完全な作業linqpadスクリプト https://github.com/kennethito/StackOverflowReferences/blob/master/Oxyplot-CustomAxis/oxyplot.linq
おかげケネス。私はあなたのソリューションがうまくいくと信じていますが、まだ検証する機会はありませんでした。私はまもなく(12-24時間、神が喜んで)更新して更新します。 – Daniel