SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, iOS Chart, Android Chart and JavaScript Chart Components
Please note! These examples are new to SciChart Mobile v3 release! SciChart iOS & Android ship with Xamarin.iOS and Xamarin.Android bindings around our native iOS & Android Chart controls, allowing you to create fast & feature rich charts to your Xamarin applications. We include ~90 native iOS examples and 90 Android examples, but now also ~60 Xamarin Chart Examples to help you get started with SciChart. You can download the source for our Xamarin Chart Examples from Github, or browse the source code below.Â
This example showcases how to create an Impulse or Stem chart with Xamarin. A Xamarin Impulse or Stem Chart can be used to visualize Digital Filter responses, or scientific charts, for instance, mass spectra.
Tip!
You can add optional data-point markers to the impulse series using the PointMarker API. This is very performant and uses the same bitmap rendering as our Scatter-Charts.
The C#/Xamarin.iOS/Xamarin.Android source code for the Xamarin Impulse (Stem) Chart example is included below (Scroll down!).
Did you know you can also view the source code from one of the following sources as well?
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 Xamarin.Examples.Demo.Data;
using Xamarin.Examples.Demo;
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();
}
}
}
}