2016-03-31 11 views
1

現在、私のデータは両方の軸数値を持つLineSeriesで表示されます。各点のX値は非常に小さい時間間隔です。この値をカスタム方法で表示する必要があります。可能であれば、データにはDateTimeAxisを使用しないでください。 LinearAxisを特定の方法でフォーマットすることはできますか?LinearAxis DateTimeを表示するStringFormat?

答えて

1

これは私にとってはうまくいくようです。私はここで何かを誤解していないことを願っています。

//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

enter image description here

+0

おかげケネス。私はあなたのソリューションがうまくいくと信じていますが、まだ検証する機会はありませんでした。私はまもなく(12-24時間、神が喜んで)更新して更新します。 – Daniel

関連する問題