void SetupBarPlots() { // Create a plot that uses the data source method var inputSocket = new List <float> { 30, 20, 10, 20, 10, 55 }; var barPlot = new CPTBarPlot { DataSource = new BarSourceData(inputSocket), BaseValue = 0, BarOffset = (NSDecimal)(-0.25), Identifier = (NSString)"Bar Plot 1" }; graph.AddPlot(barPlot); barPlot.Fill = new CPTFill(CPTColor.BrownColor); graph.AddPlot(barPlot, graph.DefaultPlotSpace); var space = graph.DefaultPlotSpace as CPTXYPlotSpace; space.ScaleToFitPlots(new CPTPlot [] { barPlot }); decimal newYMax = (decimal)space.YRange.MaxLimit + (decimal)space.YRange.MaxLimit * 0.2m; space.YRange = new CPTPlotRange(-4, new NSDecimalNumber(newYMax.ToString()).NSDecimalValue); decimal newXMax = (decimal)space.XRange.MaxLimit + 2; decimal newXMin = (decimal)space.XRange.MinLimit - 1; space.XRange = new CPTPlotRange(new NSDecimalNumber(newXMin.ToString()).NSDecimalValue, new NSDecimalNumber(newXMax.ToString()).NSDecimalValue); }
void SetupScatterPlots() { // Create a plot that uses the data source method var dataSourceLinePlot = new CPTScatterPlot { CachePrecision = CPTPlotCachePrecision.Double, DataLineStyle = new CPTLineStyle { LineWidth = 2, LineColor = CPTColor.GreenColor }, // For Kang, check this out: DataSource = new RandomSamplesSource(), PlotSymbolMarginForHitDetection = 5 }; graph.AddPlot(dataSourceLinePlot); // Create a plot for the selection marker var selectionPlot = new CPTScatterPlot { CachePrecision = CPTPlotCachePrecision.Double, DataLineStyle = new CPTLineStyle { LineWidth = 3, LineColor = CPTColor.RedColor }, }; graph.AddPlot(selectionPlot); var space = graph.DefaultPlotSpace as CPTXYPlotSpace; space.ScaleToFitPlots(new CPTPlot [] { dataSourceLinePlot }); // Setting these will lock the scrolling on each direction: //space.GlobalXRange = new CPPlotRange (NSNumber.FromDouble (-1).NSDecimalValue, NSNumber.FromDouble (10).NSDecimalValue); //space.GlobalYRange = new CPPlotRange (NSNumber.FromDouble (-5).NSDecimalValue, NSNumber.FromDouble (10).NSDecimalValue); }
void SetupPlots() { // Create a plot that uses the data source method CPTRangePlot dataSourceLinePlot = new CPTRangePlot(); dataSourceLinePlot.Identifier = (NSString)"Date Plot"; // Add line style barLineStyle = new CPTLineStyle(); barLineStyle.LineWidth = 3f; barLineStyle.LineColor = CPTColor.GreenColor; dataSourceLinePlot.BarLineStyle = barLineStyle; // Bar properties dataSourceLinePlot.BarWidth = 10.0f; dataSourceLinePlot.GapWidth = 20.0f; dataSourceLinePlot.GapHeight = 20.0f; dataSourceLinePlot.DataSource = new RangeSource(); // Add plot graph.AddPlot(dataSourceLinePlot); areaFillDefault = CPTFill.FromColor(CPTColor.ClearColor); barLineStyleDefault = dataSourceLinePlot.BarLineStyle; var space = graph.DefaultPlotSpace as CPTXYPlotSpace; space.ScaleToFitPlots(new CPTPlot [] { dataSourceLinePlot }); }
void SetupPiePlots() { // Prepare a radial overlay gradient for shading/gloss var color = new CPTColor(new MonoTouch.CoreGraphics.CGColor(1f, 1f, 0f)); var overlayGradient = new CPTGradient { GradientType = CPTGradientType.Radial }; overlayGradient.AddColorStop(color.ColorWithAlphaComponent(0.7f), 1.0f); // Create a plot that uses the data source method var piePlot = new CPTPieChart { PieRadius = 130.0f, Identifier = (NSString)"Pie Chart 1", StartAngle = (float)Math.PI / 4f, // 0.785398163397448309616f; //M_PI_4; SliceDirection = CPTPieDirection.CounterClockwise, BorderLineStyle = CPTLineStyle.LineStyle }; var inputData = new List <float> { 60, 20, 40 }; piePlot.DataSource = new PieSourceData(inputData); graph.AddPlot(piePlot); }
void SetupPiePlots() { // Prepare a radial overlay gradient for shading/gloss CPTColor color = new CPTColor(new MonoTouch.CoreGraphics.CGColor(1f, 1f, 0f)); CPTGradient overlayGradient = new CPTGradient() { GradientType = CPTGradientType.Radial }; //overlayGradient.AddColorStop(CPTColor.BlackColor, 0.0f); //overlayGradient.AddColorStop(color.ColorWithAlphaComponent(0.3f), 0.9f); overlayGradient.AddColorStop(color.ColorWithAlphaComponent(0.7f), 1.0f); // Create a plot that uses the data source method var piePlot = new CPTPieChart() { PieRadius = 130.0f, Identifier = (NSString)"Pie Chart 1", StartAngle = (float)Math.PI / 4f, // 0.785398163397448309616f; //M_PI_4; SliceDirection = CPTPieDirection.CounterClockwise, BorderLineStyle = CPTLineStyle.LineStyle, //SliceLabelOffset = 0.0f }; //TODO: This is giving a white overlay?? piePlot.OverlayFill = new CPTFill(overlayGradient); var inputData = new List <float> () { 60, 20, 40 }; piePlot.DataSource = new PieSourceData(inputData); graph.AddPlot(piePlot); }
public virtual void AwakeFromNib() { // If you make sure your dates are calculated at noon, you shouldn't have to // worry about daylight savings. If you use midnight, you will have to adjust // for daylight savings time. NSDate refDate = NSDate.DateWithNaturalLanguageString ("12:00 Oct 27, 2010"); double oneDay = 24 * 60 * 60; // Create graph from theme graph = new CPTXYGraph (CGRect.CGRectZero); CPTTheme theme = CPTTheme.ThemeNamed (CPTTheme.kCPTDarkGradientTheme); graph.ApplyTheme (theme); hostView.HostedGraph = graph; // Title CPTMutableTextStyle textStyle = CPTMutableTextStyle.TextStyle; textStyle.Color = CPTColor.WhiteColor; textStyle.FontSize = 18.0; textStyle.FontName = "Helvetica"; graph.Title = "Click to Toggle Range Plot Style"; graph.TitleTextStyle = textStyle; graph.TitleDisplacement = new CGPoint (0.0f, -20.0f); // Setup scatter plot space CPTXYPlotSpace plotSpace = graph.DefaultPlotSpace.CastTo<CPTXYPlotSpace> (); double xLow = oneDay * 0.5; plotSpace.XRange = CPTPlotRange.PlotRangeWithLocationLength (NSDecimal.FromDouble (xLow), NSDecimal.FromDouble (oneDay * 5.0)); plotSpace.YRange = CPTPlotRange.PlotRangeWithLocationLength (NSDecimal.FromDouble (1.0), NSDecimal.FromDouble (3.0)); // Axes CPTXYAxisSet axisSet = graph.AxisSet.CastTo<CPTXYAxisSet> (); CPTXYAxis x = axisSet.XAxis; x.MajorIntervalLength = NSDecimal.FromDouble (oneDay); x.OrthogonalCoordinateDecimal = NSDecimal.FromString ("2"); x.MinorTicksPerInterval = 0; NSDateFormatter dateFormatter = new NSDateFormatter ().Autorelease<NSDateFormatter> (); dateFormatter.DateStyle = NSDateFormatterStyle.NSDateFormatterShortStyle; CPTTimeFormatter timeFormatter = new CPTTimeFormatter (dateFormatter).Autorelease<CPTTimeFormatter> (); timeFormatter.ReferenceDate = refDate; x.LabelFormatter = timeFormatter; CPTXYAxis y = axisSet.YAxis; y.MajorIntervalLength = NSDecimal.FromString (@"0.5"); y.MinorTicksPerInterval = 5; y.OrthogonalCoordinateDecimal = NSDecimal.FromDouble (oneDay); // Create a plot that uses the data source method CPTRangePlot dataSourceLinePlot = new CPTRangePlot ().Autorelease<CPTRangePlot> (); dataSourceLinePlot.Identifier = PLOT_IDENTIFIER; // Add line style CPTMutableLineStyle lineStyle = CPTMutableLineStyle.LineStyle; lineStyle.LineWidth = 1.0; lineStyle.LineColor = CPTColor.GreenColor; barLineStyle = lineStyle.Retain<CPTLineStyle> (); dataSourceLinePlot.BarLineStyle = barLineStyle; // Bar properties dataSourceLinePlot.BarWidth = 10.0; dataSourceLinePlot.GapWidth = 20.0; dataSourceLinePlot.GapHeight = 20.0; dataSourceLinePlot.DataSource = this; // Add plot graph.AddPlot (dataSourceLinePlot); graph.DefaultPlotSpace.Delegate = this; // Store area fill for use later CPTColor transparentGreen = CPTColor.GreenColor.ColorWithAlphaComponent (0.2); areaFill = new CPTFill (transparentGreen); // Add some data NSMutableArray newData = new NSMutableArray(); NSUInteger i; Random rand = new Random (); for (i = 0; i < 5; i++) { double xx = oneDay * (i + 1.0); double yy = 3.0 * rand.Next () / (double)Int32.MaxValue + 1.2; double rHigh = rand.Next () / (double)Int32.MaxValue * 0.5 + 0.25; double rLow = rand.Next () / (double)Int32.MaxValue * 0.5 + 0.25; double rLeft = (rand.Next () / (double)Int32.MaxValue * 0.125 + 0.125) * oneDay; double rRight = (rand.Next () / (double)Int32.MaxValue * 0.125 + 0.125) * oneDay; newData.AddObject (NSDictionary.DictionaryWithObjectsAndKeys ( NSDecimalNumber.NumberWithDouble (xx), CPTRangePlot.FieldX, NSDecimalNumber.NumberWithDouble (yy), CPTRangePlot.FieldY, NSDecimalNumber.NumberWithDouble (rHigh), CPTRangePlot.FieldHigh, NSDecimalNumber.NumberWithDouble (rLow), CPTRangePlot.FieldLow, NSDecimalNumber.NumberWithDouble (rLeft), CPTRangePlot.FieldLeft, NSDecimalNumber.NumberWithDouble (rRight), CPTRangePlot.FieldRight, null)); } plotData = newData; }
public virtual void AwakeFromNib() { // If you make sure your dates are calculated at noon, you shouldn't have to // worry about daylight savings. If you use midnight, you will have to adjust // for daylight savings time. NSDate refDate = NSDate.DateWithNaturalLanguageString ("12:00 Oct 27, 2010"); double oneDay = 24 * 60 * 60; // Create graph from theme graph = new CPTXYGraph (CGRect.CGRectZero); CPTTheme theme = CPTTheme.ThemeNamed (CPTTheme.kCPTDarkGradientTheme); graph.ApplyTheme (theme); hostView.HostedGraph = graph; // Setup scatter plot space CPTXYPlotSpace plotSpace = graph.DefaultPlotSpace.CastTo<CPTXYPlotSpace> (); double xLow = oneDay * 0.5; plotSpace.XRange = CPTPlotRange.PlotRangeWithLocationLength (NSDecimal.FromDouble (xLow), NSDecimal.FromDouble (oneDay * 5.0)); plotSpace.YRange = CPTPlotRange.PlotRangeWithLocationLength (NSDecimal.FromDouble (1.0), NSDecimal.FromDouble (3.0)); // Axes CPTXYAxisSet axisSet = graph.AxisSet.CastTo<CPTXYAxisSet> (); CPTXYAxis x = axisSet.XAxis; x.MajorIntervalLength = NSDecimal.FromDouble (oneDay); x.OrthogonalCoordinateDecimal = NSDecimal.FromString ("2"); x.MinorTicksPerInterval = 0; NSDateFormatter dateFormatter = new NSDateFormatter ().Autorelease<NSDateFormatter> (); dateFormatter.DateStyle = NSDateFormatterStyle.NSDateFormatterShortStyle; CPTTimeFormatter timeFormatter = new CPTTimeFormatter (dateFormatter).Autorelease<CPTTimeFormatter> (); timeFormatter.ReferenceDate = refDate; x.LabelFormatter = timeFormatter; CPTXYAxis y = axisSet.YAxis; y.MajorIntervalLength = NSDecimal.FromString (@"0.5"); y.MinorTicksPerInterval = 5; y.OrthogonalCoordinateDecimal = NSDecimal.FromDouble (oneDay); // Create a plot that uses the data source method CPTScatterPlot dataSourceLinePlot = new CPTScatterPlot ().Autorelease<CPTScatterPlot> (); dataSourceLinePlot.Identifier = PLOT_IDENTIFIER; // Add line style CPTMutableLineStyle lineStyle = CPTMutableLineStyle.LineStyle; lineStyle.LineWidth = 3.0; lineStyle.LineColor = CPTColor.GreenColor; dataSourceLinePlot.DataLineStyle = lineStyle; // Add plot graph.AddPlot (dataSourceLinePlot); dataSourceLinePlot.DataSource = this; // Add some data NSMutableArray newData = new NSMutableArray(); NSUInteger i; Random rand = new Random (); for (i = 0; i < 5; i++) { double xx = oneDay * (i + 1.0); double yy = 3.0 * rand.Next () / (double)Int32.MaxValue + 1.2; newData.AddObject (NSDictionary.DictionaryWithObjectsAndKeys ( NSDecimalNumber.NumberWithDouble (xx), CPTScatterPlot.FieldX, NSDecimalNumber.NumberWithDouble (yy), CPTScatterPlot.FieldY, null)); } plotData = newData; }