-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathImpulseChartFragment.cs
64 lines (57 loc) · 2.56 KB
/
ImpulseChartFragment.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using Android.Views.Animations;
using SciChart.Charting.Model;
using SciChart.Charting.Model.DataSeries;
using SciChart.Charting.Modifiers;
using SciChart.Charting.Visuals;
using SciChart.Charting.Visuals.Animations;
using SciChart.Charting.Visuals.Axes;
using SciChart.Charting.Visuals.PointMarkers;
using SciChart.Charting.Visuals.RenderableSeries;
using SciChart.Data.Model;
using SciChart.Drawing.Common;
using SciChart.Examples.Demo.Data;
using SciChart.Examples.Demo.Fragments.Base;
using Xamarin.Examples.Demo.Droid.Extensions;
using Xamarin.Examples.Demo.Droid.Fragments.Base;
namespace Xamarin.Examples.Demo.Droid.Fragments.Examples
{
[ExampleDefinition("Impulse Chart", description:"Creates an Impulse or Stem Chart", icon: ExampleIcon.Impulse)]
public class ImpulseChartFragment : ExampleBaseFragment
{
public SciChartSurface Surface => View.FindViewById<SciChartSurface>(Resource.Id.chart);
public override int ExampleLayoutId => Resource.Layout.Example_Single_Chart_Fragment;
protected override void InitExample()
{
var xAxis = new NumericAxis(Activity) {GrowBy = new DoubleRange(0.1, 0.1)};
var yAxis = new NumericAxis(Activity) {GrowBy = new DoubleRange(0.1, 0.1)};
var ds1Points = DataManager.Instance.GetDampedSinewave(1.0, 0.05, 50, 5);
var dataSeries = new XyDataSeries<double, double>();
dataSeries.Append(ds1Points.XData, ds1Points.YData);
var rSeries = new FastImpulseRenderableSeries
{
DataSeries = dataSeries,
StrokeStyle = new SolidPenStyle(0xFF0066FF, 2f.ToDip(Activity)),
PointMarker = new EllipsePointMarker
{
Width = 10.ToDip(Activity),
Height = 10.ToDip(Activity),
StrokeStyle = new SolidPenStyle(0xFF0066FF, 2f.ToDip(Activity)),
FillStyle = new SolidBrushStyle(0xFF0066FF)
}
};
using (Surface.SuspendUpdates())
{
Surface.XAxes.Add(xAxis);
Surface.YAxes.Add(yAxis);
Surface.RenderableSeries.Add(rSeries);
Surface.ChartModifiers = new ChartModifierCollection
{
new ZoomPanModifier(),
new PinchZoomModifier(),
new ZoomExtentsModifier()
};
new WaveAnimatorBuilder(rSeries) { Interpolator = new DecelerateInterpolator(), Duration = 3000, StartDelay = 350 }.Start();
}
}
}
}