Пример #1
0
        private XYMultipleSeriesRenderer GetDemoRenderer()
        {
            XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

            renderer.AxisTitleTextSize  = 16;
            renderer.ChartTitleTextSize = 20;
            renderer.LabelsTextSize     = 15;
            renderer.LegendTextSize     = 15;
            renderer.PointSize          = 5f;
            renderer.SetMargins(new int[] { 20, 30, 15, 0 });
            XYSeriesRenderer r = new XYSeriesRenderer();

            r.Color         = Color.Blue;
            r.PointStyle    = PointStyle.Square;
            r.FillBelowLine = true;
            r.SetFillBelowLineColor(Color.White);
            r.FillPoints = true;
            renderer.AddSeriesRenderer(r);
            r            = new XYSeriesRenderer();
            r.PointStyle = PointStyle.Circle;
            r.Color      = Color.Green;
            r.FillPoints = true;
            renderer.AddSeriesRenderer(r);
            renderer.AxesColor   = Color.DarkGray;
            renderer.LabelsColor = Color.LightGray;
            return(renderer);
        }
Пример #2
0
        public XYMultipleSeriesRenderer GetBarDemoRenderer()
        {
            XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

            renderer.AxisTitleTextSize  = 16;
            renderer.ChartTitleTextSize = 20;
            renderer.LabelsTextSize     = 15;
            renderer.LegendTextSize     = 15;
            renderer.SetMargins(new int[] { 20, 30, 15, 0 });
            SimpleSeriesRenderer r = new SimpleSeriesRenderer();

            r.Color = Color.Blue;
            renderer.AddSeriesRenderer(r);
            r       = new SimpleSeriesRenderer();
            r.Color = Color.Green;
            renderer.AddSeriesRenderer(r);
            return(renderer);
        }
        /// <summary>
        /// Executes the chart demo.
        /// </summary>
        /// <param name="context"> the context </param>
        /// <returns> the built intent </returns>
        public override Intent Execute(Context context)
        {
            XYMultipleSeriesDataset series          = new XYMultipleSeriesDataset();
            XYValueSeries           newTicketSeries = new XYValueSeries("New Tickets");

            newTicketSeries.Add(1f, 2, 14);
            newTicketSeries.Add(2f, 2, 12);
            newTicketSeries.Add(3f, 2, 18);
            newTicketSeries.Add(4f, 2, 5);
            newTicketSeries.Add(5f, 2, 1);
            series.AddSeries(newTicketSeries);
            XYValueSeries fixedTicketSeries = new XYValueSeries("Fixed Tickets");

            fixedTicketSeries.Add(1f, 1, 7);
            fixedTicketSeries.Add(2f, 1, 4);
            fixedTicketSeries.Add(3f, 1, 18);
            fixedTicketSeries.Add(4f, 1, 3);
            fixedTicketSeries.Add(5f, 1, 1);
            series.AddSeries(fixedTicketSeries);

            XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

            renderer.AxisTitleTextSize  = 16;
            renderer.ChartTitleTextSize = 20;
            renderer.LabelsTextSize     = 15;
            renderer.LegendTextSize     = 15;
            renderer.SetMargins(new int[] { 20, 30, 15, 0 });
            XYSeriesRenderer newTicketRenderer = new XYSeriesRenderer();

            newTicketRenderer.Color = Color.Blue;
            renderer.AddSeriesRenderer(newTicketRenderer);
            XYSeriesRenderer fixedTicketRenderer = new XYSeriesRenderer();

            fixedTicketRenderer.Color = Color.Green;
            renderer.AddSeriesRenderer(fixedTicketRenderer);

            SetChartSettings(renderer, "Project work status", "Priority", "", 0.5, 5.5, 0, 5, Color.Gray, Color.LightGray);
            renderer.XLabels = 7;
            renderer.YLabels = 0;
            renderer.SetShowGrid(false);
            return(ChartFactory.GetBubbleChartIntent(context, series, renderer, "Project tickets"));
        }
Пример #4
0
        protected void SetRenderer(XYMultipleSeriesRenderer renderer, int[] colors, PointStyle[] styles)
        {
            renderer.AxisTitleTextSize  = 16;
            renderer.ChartTitleTextSize = 20;
            renderer.LabelsTextSize     = 15;
            renderer.LegendTextSize     = 15;
            renderer.PointSize          = 5f;
            renderer.SetMargins(new[] { 20, 30, 15, 20 });
            int length = colors.Length;

            for (int i = 0; i < length; i++)
            {
                XYSeriesRenderer r = new XYSeriesRenderer();
                r.Color      = colors[i];
                r.PointStyle = styles[i];
                renderer.AddSeriesRenderer(r);
            }
        }
Пример #5
0
        protected XYMultipleSeriesRenderer BuildBarRenderer(int[] colors)
        {
            XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

            renderer.AxisTitleTextSize  = 16;
            renderer.ChartTitleTextSize = 20;
            renderer.LabelsTextSize     = 15;
            renderer.LegendTextSize     = 15;
            int length = colors.Length;

            for (int i = 0; i < length; i++)
            {
                SimpleSeriesRenderer r = new SimpleSeriesRenderer();
                r.Color = colors[i];
                renderer.AddSeriesRenderer(r);
            }
            return(renderer);
        }
Пример #6
0
        private void multiRendererSetting()
        {
            multiRenderer.XLabels = 0;

            /***
             * Customizing graphs
             */
            //setting text size of the title
            multiRenderer.ChartTitleTextSize = 28;
            //setting text size of the axis title
            multiRenderer.AxisTitleTextSize = 24;
            //setting text size of the graph lable
            multiRenderer.LabelsTextSize = 24;
            //setting zoom buttons visiblity
            multiRenderer.ZoomButtonsVisible = false;
            //setting pan enablity which uses graph to move on both axis
            multiRenderer.PanEnabled = false;
            //multiRenderer.setPanEnabled(true, false);
            //setting click false on graph
            multiRenderer.ClickEnabled = false;
            //setting zoom to false on both axis
            multiRenderer.ZoomEnabled = false;

            //setting lines to display on y axis
            multiRenderer.ShowGridY = true;
            //setting lines to display on x axis
            multiRenderer.ShowGridX = true;
            //setting legend to fit the screen size
            multiRenderer.FitLegend = true;
            //setting displaying line on grid
            multiRenderer.ShowGridX = true;
            //setting zoom to false
            multiRenderer.ZoomEnabled = false;

            //setting external zoom functions to false
            multiRenderer.ExternalZoomEnabled = false;
            //setting displaying lines on graph to be formatted(like using graphics)
            multiRenderer.Antialiasing = true;
            //setting to in scroll to false
            multiRenderer.InScroll = false;
            //setting to set legend height of the graph
            multiRenderer.LegendHeight = 20;
            //multiRenderer.setShowLegend(false);
            //setting x axis label align
            multiRenderer.XLabelsAlign = Align.Left;
            //setting y axis label to align
            //multiRenderer.YLabelsAlign=Align.Left;
            //setting text style
            multiRenderer.TextTypeface = Typeface.Default;
            //multiRenderer.TextTypeface="sans_serif", Typeface.NORMAL;
            //setting no of values to display in y axis
            //multiRenderer.clearYTextLabels();
            multiRenderer.GridColor = Color.Transparent;
            //multiRenderer.setYAxisMin(70,1);
            //multiRenderer.setYAxisMax(250,1);


            // setting y axis max value, Since i'm using static values inside the graph so i'm setting y max value to 400.
            // if you use dynamic values then get the max y value and set here
            multiRenderer.YAxisMax = 400;
            multiRenderer.YAxisMin = 0;
            //multiRenderer.setYLabels(2);
            //setting used to move the graph on xaxiz to .5 to the right
            multiRenderer.XAxisMin = 0;
            //setting used to move the graph on xaxiz to .5 to the right
            multiRenderer.XAxisMax = 180;
            multiRenderer.ZoomRate = 2f;
            //Setting background color of the graph to transparent
            multiRenderer.BackgroundColor = Color.Transparent;
            //Setting margin color of the graph to transparent
            multiRenderer.MarginsColor         = Resource.Color.transparent_background;
            multiRenderer.ApplyBackgroundColor = true;
            multiRenderer.Scale = 2f;
            //setting x axis point size
            multiRenderer.PointSize = 4f;
            //setting the margin size for the graph in the order top, left, bottom, right
            multiRenderer.SetMargins(new int[] { 30, 30, 30, 30 });
            // Adding incomeRenderer and expenseRenderer to multipleRenderer
            // Note: The order of adding dataseries to dataset and renderers to multipleRenderer
            // should be same
            multiRenderer.AddSeriesRenderer(firstRenderer);
            multiRenderer.AddSeriesRenderer(secondRenderer);
            multiRenderer.AddSeriesRenderer(thirdRenderer);
            multiRenderer.AddSeriesRenderer(fourthRenderer);
            multiRenderer.AddSeriesRenderer(cgmRenderer);
        }
Пример #7
0
        protected override void OnCreate(Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.xy_chart);

            mX   = FindViewById <EditText>(Resource.Id.xValue);
            mY   = FindViewById <EditText>(Resource.Id.yValue);
            mAdd = FindViewById <Button>(Resource.Id.add);

            mRenderer.ApplyBackgroundColor = true;
            mRenderer.BackgroundColor      = Color.Argb(100, 50, 50, 50);
            mRenderer.AxisTitleTextSize    = 16;
            mRenderer.ChartTitleTextSize   = 20;
            mRenderer.LabelsTextSize       = 15;
            mRenderer.LegendTextSize       = 15;
            mRenderer.SetMargins(new int[] { 20, 30, 15, 0 });
            mRenderer.ZoomButtonsVisible = true;
            mRenderer.PointSize          = 5;

            mNewSeries        = FindViewById <Button>(Resource.Id.new_series);
            mNewSeries.Click += (e, s) =>
            {
                String   seriesTitle = "Series " + mDataset.SeriesCount + 1;
                XYSeries series      = new XYSeries(seriesTitle);
                mDataset.AddSeries(series);
                mCurrentSeries = series;
                XYSeriesRenderer renderer = new XYSeriesRenderer();
                mRenderer.AddSeriesRenderer(renderer);
                renderer.PointStyle                 = PointStyle.Circle;
                renderer.FillPoints                 = true;
                renderer.DisplayChartValues         = true;
                renderer.DisplayChartValuesDistance = 10;
                mCurrentRenderer = renderer;
                SetSeriesWidgetsEnabled(true);
                mChartView.Repaint();
            };

            mAdd.Click += (e, s) =>
            {
                double x = 0;
                double y = 0;
                try
                {
                    x = Double.Parse(mX.Text);
                }
                catch (Exception)
                {
                    mX.RequestFocus();
                    return;
                }
                try
                {
                    y = double.Parse(mY.Text);
                }
                catch (Exception)
                {
                    mY.RequestFocus();
                    return;
                }
                mCurrentSeries.Add(x, y);
                mX.Text = "";
                mY.Text = "";
                mX.RequestFocus();
                mChartView.Repaint();
            };
        }
Пример #8
0
        public override Android.Content.Intent Execute(Android.Content.Context context)
        {
            String[]         titles = new String[] { "Crete Air Temperature", "Skiathos Air Temperature" };
            IList <double[]> x      = new List <double[]>();

            for (int i = 0; i < titles.Length; i++)
            {
                x.Add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 });
            }
            IList <double[]> values = new List <double[]>();

            values.Add(new double[] { 12.3, 12.5, 13.8, 16.8, 20.4, 24.4, 26.4, 26.1, 23.6, 20.3, 17.2, 13.9 });
            values.Add(new double[] { 9, 10, 11, 15, 19, 23, 26, 25, 22, 18, 13, 10 });
            int[]                    colors   = new int[] { Color.Green, Color.Rgb(200, 150, 0) };
            PointStyle[]             styles   = new PointStyle[] { PointStyle.Circle, PointStyle.Diamond };
            XYMultipleSeriesRenderer renderer = BuildRenderer(colors, styles);

            renderer.PointSize = 5.5f;
            int length = renderer.SeriesRendererCount;

            for (int i = 0; i < length; i++)
            {
                XYSeriesRenderer r = (XYSeriesRenderer)renderer.GetSeriesRendererAt(i);
                r.LineWidth  = 5;
                r.FillPoints = true;
            }
            SetChartSettings(renderer, "Weather data", "Month", "Temperature", 0.5, 12.5, 0, 40, Color.LightGray, Color.LightGray);
            renderer.XLabels = 12;
            renderer.YLabels = 10;
            renderer.SetShowGrid(true);
            renderer.XLabelsAlign = Android.Graphics.Paint.Align.Right;
            renderer.SetYLabelsAlign(Android.Graphics.Paint.Align.Right);
            renderer.ZoomButtonsVisible = true;
            renderer.SetPanLimits(new double[] { -10, 20, -10, 40 });
            renderer.SetZoomLimits(new double[] { -10, 20, -10, 40 });

            XYValueSeries sunSeries = new XYValueSeries("Sunshine hours");

            sunSeries.Add(1f, 35, 4.3);
            sunSeries.Add(2f, 35, 4.9);
            sunSeries.Add(3f, 35, 5.9);
            sunSeries.Add(4f, 35, 8.8);
            sunSeries.Add(5f, 35, 10.8);
            sunSeries.Add(6f, 35, 11.9);
            sunSeries.Add(7f, 35, 13.6);
            sunSeries.Add(8f, 35, 12.8);
            sunSeries.Add(9f, 35, 11.4);
            sunSeries.Add(10f, 35, 9.5);
            sunSeries.Add(11f, 35, 7.5);
            sunSeries.Add(12f, 35, 5.5);
            XYSeriesRenderer lightRenderer = new XYSeriesRenderer();

            lightRenderer.Color = Color.Yellow;

            XYSeries waterSeries = new XYSeries("Water Temperature");

            waterSeries.Add(1, 16);
            waterSeries.Add(2, 15);
            waterSeries.Add(3, 16);
            waterSeries.Add(4, 17);
            waterSeries.Add(5, 20);
            waterSeries.Add(6, 23);
            waterSeries.Add(7, 25);
            waterSeries.Add(8, 25.5);
            waterSeries.Add(9, 26.5);
            waterSeries.Add(10, 24);
            waterSeries.Add(11, 22);
            waterSeries.Add(12, 18);
            renderer.BarSpacing = 0.5;
            XYSeriesRenderer waterRenderer = new XYSeriesRenderer();

            waterRenderer.Color = Color.Argb(250, 0, 210, 250);

            XYMultipleSeriesDataset dataset = BuildDataset(titles, x, values);

            dataset.AddSeries(0, sunSeries);
            dataset.AddSeries(0, waterSeries);
            renderer.AddSeriesRenderer(0, lightRenderer);
            renderer.AddSeriesRenderer(0, waterRenderer);
            waterRenderer.DisplayChartValues  = true;
            waterRenderer.ChartValuesTextSize = 10;

            String[] types  = new String[] { "Bar", BubbleChart.Type, LineChart.Type, CubicLineChart.Type };
            Intent   intent = ChartFactory.GetCombinedXYChartIntent(context, dataset, renderer, types, "Weather parameters");

            return(intent);
        }
Пример #9
0
        private void openChart()
        {
            int[] x       = { 0, 1, 2, 3, 4, 5, 6, 7 };
            int[] income  = { 2000, 2500, 2700, 3000, 2800, 3500, 3700, 3800 };
            int[] expense = { 2200, 2700, 2900, 2800, 2600, 3000, 3300, 3400 };

            // Creating an  XYSeries for Income
            XYSeries incomeSeries = new XYSeries("Income");
            // Creating an  XYSeries for Expense
            XYSeries expenseSeries = new XYSeries("Expense");

            // Adding data to Income and Expense Series
            for (int i = 0; i < x.Length; i++)
            {
                incomeSeries.Add(i, income[i]);
                expenseSeries.Add(i, expense[i]);
            }

            // Creating a dataset to hold each series
            XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

            // Adding Income Series to the dataset
            dataset.AddSeries(incomeSeries);
            // Adding Expense Series to dataset
            dataset.AddSeries(expenseSeries);

            // Creating XYSeriesRenderer to customize incomeSeries
            XYSeriesRenderer incomeRenderer = new XYSeriesRenderer();

            incomeRenderer.Color              = Color.Rgb(130, 130, 230);
            incomeRenderer.FillPoints         = true;
            incomeRenderer.LineWidth          = 2;
            incomeRenderer.DisplayChartValues = true;

            // Creating XYSeriesRenderer to customize expenseSeries
            XYSeriesRenderer expenseRenderer = new XYSeriesRenderer();

            expenseRenderer.Color              = Color.Rgb(220, 80, 80);
            expenseRenderer.FillPoints         = true;
            expenseRenderer.LineWidth          = 2;
            expenseRenderer.DisplayChartValues = true;

            // Creating a XYMultipleSeriesRenderer to customize the whole chart
            XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();

            multiRenderer.XLabels            = 0;
            multiRenderer.ChartTitle         = "Income vs Expense Chart";
            multiRenderer.XTitle             = "Year 2012";
            multiRenderer.YTitle             = "Amount in Dollars";
            multiRenderer.ZoomButtonsVisible = true;
            multiRenderer.BackgroundColor    = Color.Transparent;
            for (int i = 0; i < x.Length; i++)
            {
                multiRenderer.AddXTextLabel(i, mMonth[i]);
            }

            // Adding incomeRenderer and expenseRenderer to multipleRenderer
            // Note: The order of adding dataseries to dataset and renderers to multipleRenderer
            // should be same
            multiRenderer.AddSeriesRenderer(incomeRenderer);
            multiRenderer.AddSeriesRenderer(expenseRenderer);

            // Creating an intent to plot bar chart using dataset and multipleRenderer
            Intent intent = ChartFactory.GetBarChartIntent(this, dataset, multiRenderer, BarChart.Type.Default);

            // Start Activity
            StartActivity(intent);
        }
Пример #10
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Chart);
            db = new DataDB(this);

            mDataSet.AddSeries(SeriesCreate("DataOne"));
            mDataSet.AddSeries(SeriesCreate("DataTwo"));
            mDataSet.AddSeries(SeriesCreate("DataThree"));
            XYSeriesRenderer renderOne   = singleRenderer(255, 000, 000);
            XYSeriesRenderer renderTwo   = singleRenderer(000, 255, 000);
            XYSeriesRenderer renderThree = singleRenderer(000, 000, 255);

            mRenderer.SetMargins(new int[] { 10, 60, 100, 30 });
            mRenderer.XLabels              = 0;
            mRenderer.ChartTitle           = "Data Chart";
            mRenderer.XTitle               = "UserID";
            mRenderer.YTitle               = "Data Inputs";
            mRenderer.AxisTitleTextSize    = 32;
            mRenderer.ChartTitleTextSize   = 40;
            mRenderer.LabelsTextSize       = 32;
            mRenderer.PointSize            = 3;
            mRenderer.ShowLegend           = false;
            mRenderer.ShowGridX            = true;
            mRenderer.ShowGridY            = true;
            mRenderer.ZoomButtonsVisible   = true;
            mRenderer.ApplyBackgroundColor = true;
            mRenderer.AxesColor            = Color.Black;
            mRenderer.LabelsColor          = Color.Black;
            mRenderer.MarginsColor         = Color.White;
            mRenderer.GridColor            = Color.Black;
            mRenderer.SetYLabelsColor(0, Color.Black);
            mRenderer.XLabelsColor    = Color.Black;
            mRenderer.BackgroundColor = Color.White;
            for (int i = 0; i < db.Count(); i++)
            {
                mRenderer.AddXTextLabel(i, db.readPrimary("UserID", i));
            }
            mRenderer.AddSeriesRenderer(renderOne);
            mRenderer.AddSeriesRenderer(renderTwo);
            mRenderer.AddSeriesRenderer(renderThree);
            if (mChartView == null)
            {
                chartLayout = FindViewById <LinearLayout>(Resource.Id.chart);
                mChartView  = ChartFactory.GetLineChartView(this, mDataSet, mRenderer);
                chartLayout.AddView(mChartView, new LinearLayout.LayoutParams(
                                        Android.Views.ViewGroup.LayoutParams.FillParent,
                                        Android.Views.ViewGroup.LayoutParams.FillParent));
            }

            listView = FindViewById <ListView>(Resource.Id.DataList);
            tableItems.Add(new TableItem()
            {
                DataName = "DataOne", ID = 9001, Red = 255, Green = 000, Blue = 000
            });
            tableItems.Add(new TableItem()
            {
                DataName = "DataTwo", ID = 9002, Red = 000, Green = 255, Blue = 000
            });
            tableItems.Add(new TableItem()
            {
                DataName = "DataThree", ID = 9003, Red = 000, Green = 000, Blue = 255
            });
            listView.Adapter = new ChartActivityAdapter(this, tableItems);

            btnSave        = FindViewById <Button>(Resource.Id.btnSave);
            btnSave.Click += BtnSave_Click;
        }