/// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected override NWidget CreateExampleContent()
        {
            NChartView chartView = CreateCartesianChartView();

            // configure title
            chartView.Surface.Titles[0].Text = "Standard Area";

            // configure chart
            NCartesianChart chart = (NCartesianChart)chartView.Surface.Charts[0];

            chart.SetPredefinedCartesianAxes(ENPredefinedCartesianAxis.XOrdinalYLinear);

            // setup X axis
            NOrdinalScale scaleX = (NOrdinalScale)chart.Axes[ENCartesianAxis.PrimaryX].Scale;

            scaleX.InflateContentRange           = false;
            scaleX.MajorTickMode                 = ENMajorTickMode.AutoMaxCount;
            scaleX.DisplayDataPointsBetweenTicks = false;
            scaleX.Labels.Visible                = false;

            for (int i = 0; i < monthLetters.Length; i++)
            {
                scaleX.CustomLabels.Add(new NCustomValueLabel(i, monthLetters[i]));
            }

            // add interlaced stripe for Y axis
            NScaleStrip stripStyle = new NScaleStrip(new NColorFill(NColor.Beige), null, true, 0, 0, 1, 1);

            stripStyle.Interlaced = true;

            NLinearScale scaleY = (NLinearScale)chart.Axes[ENCartesianAxis.PrimaryY].Scale;

            scaleY.Strips.Add(stripStyle);

            // setup area series
            m_Area      = new NAreaSeries();
            m_Area.Name = "Area Series";

            NDataLabelStyle dataLabelStyle = new NDataLabelStyle();

            dataLabelStyle.Visible = true;
            dataLabelStyle.Format  = "<value>";

            m_Area.DataLabelStyle = dataLabelStyle;

            for (int i = 0; i < monthValues.Length; i++)
            {
                m_Area.DataPoints.Add(new NAreaDataPoint(monthValues[i]));
            }

            chart.Series.Add(m_Area);

            return(chartView);
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected override NWidget CreateExampleContent()
        {
            NChartView chartView = CreateCartesianChartView();

            // configure title
            chartView.Surface.Titles[0].Text = "Ordinal Scale";

            // configure chart
            m_Chart = (NCartesianChart)chartView.Surface.Charts[0];

            // configure axes
            m_Chart.SetPredefinedCartesianAxes(ENPredefinedCartesianAxis.XOrdinalYLinear);

            // add interlaced stripe to the Y axis
            NLinearScale linearScale = (NLinearScale)m_Chart.Axes[ENCartesianAxis.PrimaryY].Scale;
            NScaleStrip  stripStyle  = new NScaleStrip();

            stripStyle.Fill       = new NColorFill(NColor.Beige);
            stripStyle.Interlaced = true;
            linearScale.Strips.Add(stripStyle);

            // add some series
            int        dataItemsCount = 6;
            NBarSeries bar            = new NBarSeries();

            bar.InflateMargins = true;
            bar.DataLabelStyle = new NDataLabelStyle(false);

            Random random = new Random();

            for (int i = 0; i < dataItemsCount; i++)
            {
                bar.DataPoints.Add(new NBarDataPoint(random.Next(10, 30)));
            }

            m_Chart.Series.Add(bar);

            NOrdinalScale ordinalScale = (NOrdinalScale)m_Chart.Axes[ENCartesianAxis.PrimaryX].Scale;

            ordinalScale.Labels.OverlapResolveLayouts = new NDomArray <ENLevelLabelsLayout>(new ENLevelLabelsLayout[] { ENLevelLabelsLayout.AutoScale });

            NList <string> labels = new NList <string>();

            for (int j = 0; j < dataItemsCount; j++)
            {
                labels.Add("Category " + j.ToString());
            }

            ordinalScale.Labels.TextProvider = new NOrdinalScaleLabelTextProvider(labels);

            chartView.Document.StyleSheets.ApplyTheme(new NChartTheme(ENChartPalette.Bright, false));

            return(chartView);
        }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected override NWidget CreateExampleContent()
        {
            NChartView chartView = CreateCartesianChartView();

            // configure title
            chartView.Surface.Titles[0].Text = "Standard Bubble";

            // configure chart
            m_Chart = (NCartesianChart)chartView.Surface.Charts[0];

            m_Chart.SetPredefinedCartesianAxes(ENPredefinedCartesianAxis.XOrdinalYLinear);

            // configure the chart
            NLinearScale yScale = (NLinearScale)m_Chart.Axes[ENCartesianAxis.PrimaryY].Scale;

            yScale.MajorGridLines = new NScaleGridLines();
            yScale.MajorGridLines.Stroke.DashStyle = ENDashStyle.Dot;

            // add interlace stripe
            NScaleStrip strip = new NScaleStrip(new NColorFill(NColor.Beige), null, true, 0, 0, 1, 1);

            strip.Interlaced = true;
            yScale.Strips.Add(strip);

            NOrdinalScale xScale = (NOrdinalScale)m_Chart.Axes[ENCartesianAxis.PrimaryX].Scale;

            xScale.MajorGridLines = new NScaleGridLines();
            xScale.MajorGridLines.Stroke.DashStyle = ENDashStyle.Dot;

            // add a bubble series
            m_Bubble = new NBubbleSeries();

            m_Bubble.DataLabelStyle           = new NDataLabelStyle();
            m_Bubble.DataLabelStyle.VertAlign = ENVerticalAlignment.Center;
            m_Bubble.DataLabelStyle.Visible   = false;
            m_Bubble.LegendView.Mode          = ENSeriesLegendMode.DataPoints;
            m_Bubble.MinSize = 20;
            m_Bubble.MaxSize = 100;

            m_Bubble.DataPoints.Add(new NBubbleDataPoint(10, 10, "Company 1"));
            m_Bubble.DataPoints.Add(new NBubbleDataPoint(15, 20, "Company 2"));
            m_Bubble.DataPoints.Add(new NBubbleDataPoint(12, 25, "Company 3"));
            m_Bubble.DataPoints.Add(new NBubbleDataPoint(8, 15, "Company 4"));
            m_Bubble.DataPoints.Add(new NBubbleDataPoint(14, 17, "Company 5"));
            m_Bubble.DataPoints.Add(new NBubbleDataPoint(11, 12, "Company 6"));

            m_Chart.Series.Add(m_Bubble);

            chartView.Document.StyleSheets.ApplyTheme(new NChartTheme(ENChartPalette.Bright, true));

            return(chartView);
        }
示例#4
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected override NWidget CreateExampleContent()
        {
            NChartView chartView = CreateCartesianChartView();

            chartView.Surface.Titles[0].Text = "Axis Ticks";

            // configure chart
            m_Chart = (NCartesianChart)chartView.Surface.Charts[0];

            // configure axes
            m_Chart.SetPredefinedCartesianAxes(ENPredefinedCartesianAxis.XOrdinalYLinear);
            NLinearScale scaleY = (NLinearScale)m_Chart.Axes[ENCartesianAxis.PrimaryY].Scale;

            scaleY.MinorTickCount          = 1;
            scaleY.InnerMinorTicks.Visible = true;
            scaleY.InnerMinorTicks.Stroke  = new NStroke(1, NColor.Black);
            scaleY.InnerMinorTicks.Length  = 5;

            scaleY.OuterMinorTicks.Visible = true;
            scaleY.OuterMinorTicks.Stroke  = new NStroke(1, NColor.Black);
            scaleY.OuterMinorTicks.Length  = 5;

            scaleY.InnerMajorTicks.Visible = true;
            scaleY.InnerMajorTicks.Stroke  = new NStroke(1, NColor.Black);

            // add interlaced stripe
            NScaleStrip strip = new NScaleStrip(new NColorFill(NColor.Beige), null, true, 0, 0, 1, 1);

            strip.Interlaced = true;
            scaleY.Strips.Add(strip);

            NOrdinalScale scaleX = (NOrdinalScale)m_Chart.Axes[ENCartesianAxis.PrimaryX].Scale;

            // create dummy data
            NBarSeries bar = new NBarSeries();

            bar.Name = "Bars";
            Random random = new Random();

            for (int i = 0; i < 10; i++)
            {
                bar.DataPoints.Add(new NBarDataPoint(random.Next(100)));
            }

            m_Chart.Series.Add(bar);

            chartView.Document.StyleSheets.ApplyTheme(new NChartTheme(ENChartPalette.Bright, false));

            return(chartView);
        }
        /// <summary>
        /// Creates a sample bar chart given title, values and labels
        /// </summary>
        /// <param name="size"></param>
        /// <param name="title"></param>
        /// <param name="values"></param>
        /// <param name="labels"></param>
        /// <returns></returns>
        private NParagraph CreateSampleBarChart(NSize size, string title, double[] values, string[] labels)
        {
            NChartView chartView = CreateCartesianChartView();

            chartView.PreferredSize = size;

            // configure title
            chartView.Surface.Titles[0].Text        = title;
            chartView.Surface.Titles[0].Margins     = NMargins.Zero;
            chartView.Surface.Legends[0].Visibility = ENVisibility.Hidden;
            chartView.BorderThickness = NMargins.Zero;

            // configure chart
            NCartesianChart chart = (NCartesianChart)chartView.Surface.Charts[0];

            chart.Padding = new NMargins(20);

            // configure axes
            chart.SetPredefinedCartesianAxes(ENPredefinedCartesianAxis.XOrdinalYLinear);
            chart.Margins = NMargins.Zero;

            NBarSeries bar = new NBarSeries();

            bar.LegendView.Mode = ENSeriesLegendMode.None;
            bar.DataLabelStyle  = new NDataLabelStyle(false);

            chart.Series.Add(bar);

            for (int i = 0; i < values.Length; i++)
            {
                bar.DataPoints.Add(new NBarDataPoint(values[i]));
            }

            NOrdinalScale scaleX = (NOrdinalScale)chart.Axes[ENCartesianAxis.PrimaryX].Scale;

            scaleX.Labels.TextProvider = new NOrdinalScaleLabelTextProvider(labels);

            NParagraph paragraph = new NParagraph();

            NWidgetInline chartInline = new NWidgetInline();

            chartInline.Content = chartView;
            paragraph.Inlines.Add(chartInline);

            return(paragraph);
        }
示例#6
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected override NWidget CreateExampleContent()
        {
            NChartView chartView = CreateCartesianChartView();

            chartView.Surface.Titles[0].Text = "Axis Strips";

            // configure chart
            NCartesianChart chart = (NCartesianChart)chartView.Surface.Charts[0];

            // configure axes
            chart.SetPredefinedCartesianAxes(ENPredefinedCartesianAxis.XOrdinalYLinear);
            NLinearScale scaleY = (NLinearScale)chart.Axes[ENCartesianAxis.PrimaryY].Scale;

            // add interlaced stripe
            m_Strip            = new NScaleStrip(new NColorFill(NColor.DarkGray), null, true, 0, 0, 1, 1);
            m_Strip.Interlaced = true;
            scaleY.Strips.Add(m_Strip);

            // enable the major y grid lines
            scaleY.MajorGridLines = new NScaleGridLines();

            NOrdinalScale scaleX = (NOrdinalScale)chart.Axes[ENCartesianAxis.PrimaryX].Scale;

            // enable the major x grid lines
            scaleX.MajorGridLines = new NScaleGridLines();

            // create dummy data
            NBarSeries bar = new NBarSeries();

            bar.Name           = "Bars";
            bar.DataLabelStyle = new NDataLabelStyle(false);
            Random random = new Random();

            for (int i = 0; i < 10; i++)
            {
                bar.DataPoints.Add(new NBarDataPoint(random.Next(100)));
            }

            chart.Series.Add(bar);

            chartView.Document.StyleSheets.ApplyTheme(new NChartTheme(ENChartPalette.Bright, false));

            return(chartView);
        }
示例#7
0
        void OnUseCustomXAxisLabelsCheckedChanged(NValueChangeEventArgs arg)
        {
            NOrdinalScale ordinalScale = (NOrdinalScale)m_Chart.Axes[ENCartesianAxis.PrimaryX].Scale;

            if (((NCheckBox)arg.TargetNode).Checked)
            {
                ordinalScale.Labels.TextProvider = new NOrdinalScaleLabelTextProvider(new string[] { "C++",
                                                                                                     "Ruby",
                                                                                                     "Python",
                                                                                                     "Java",
                                                                                                     "Javascript",
                                                                                                     "C#",
                                                                                                     "PHP" });
            }
            else
            {
                ordinalScale.Labels.TextProvider = new NFormattedScaleLabelTextProvider(new NNumericValueFormatter(ENNumericValueFormat.Arabic));
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected override NWidget CreateExampleContent()
        {
            NChartView chartView = CreateCartesianChartView();

            // configure title
            chartView.Surface.Titles[0].Text = "Stacked Area";

            // configure chart
            NCartesianChart chart = (NCartesianChart)chartView.Surface.Charts[0];

            chart.SetPredefinedCartesianAxes(ENPredefinedCartesianAxis.XOrdinalYLinear);

            // setup X axis
            NOrdinalScale scaleX = (NOrdinalScale)chart.Axes[ENCartesianAxis.PrimaryX].Scale;

            scaleX.InflateContentRange = false;

            // add interlaced stripe for Y axis
            NScaleStrip strip = new NScaleStrip(new NColorFill(NColor.Beige), null, true, 0, 0, 1, 1);

            strip.Interlaced = true;

            NLinearScale scaleY = (NLinearScale)chart.Axes[ENCartesianAxis.PrimaryY].Scale;

            scaleY.Strips.Add(strip);

            // add the first area
            m_Area1 = new NAreaSeries();
            m_Area1.MultiAreaMode  = ENMultiAreaMode.Series;
            m_Area1.Name           = "Product A";
            m_Area1.DataLabelStyle = new NDataLabelStyle();
            chart.Series.Add(m_Area1);
            SetupDataLabels(m_Area1);

            // add the second Area
            m_Area2 = new NAreaSeries();
            m_Area2.MultiAreaMode  = ENMultiAreaMode.Stacked;
            m_Area2.Name           = "Product B";
            m_Area2.DataLabelStyle = new NDataLabelStyle();
            chart.Series.Add(m_Area2);
            SetupDataLabels(m_Area2);

            // add the third Area
            m_Area3 = new NAreaSeries();
            m_Area3.MultiAreaMode  = ENMultiAreaMode.Stacked;
            m_Area3.Name           = "Product C";
            m_Area3.DataLabelStyle = new NDataLabelStyle();
            chart.Series.Add(m_Area3);
            SetupDataLabels(m_Area3);

            // fill with random data
            Random random = new Random();

            for (int i = 0; i < 10; i++)
            {
                m_Area1.DataPoints.Add(new NAreaDataPoint(random.Next(20, 50)));
                m_Area2.DataPoints.Add(new NAreaDataPoint(random.Next(20, 50)));
                m_Area3.DataPoints.Add(new NAreaDataPoint(random.Next(20, 50)));
            }

            return(chartView);
        }
示例#9
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected override NWidget CreateExampleContent()
        {
            NChartView chartView = CreatePolarChartView();

            // configure title
            chartView.Surface.Titles[0].Text = "Polar Range";

            // configure chart
            m_Chart = (NPolarChart)chartView.Surface.Charts[0];

            m_Chart.SetPredefinedPolarAxes(ENPredefinedPolarAxes.AngleValue);

            // setup polar axis
            NLinearScale linearScale = (NLinearScale)m_Chart.Axes[ENPolarAxis.PrimaryValue].Scale;

            linearScale.ViewRangeInflateMode   = ENScaleViewRangeInflateMode.MajorTick;
            linearScale.InflateViewRangeBegin  = true;
            linearScale.InflateViewRangeEnd    = true;
            linearScale.MajorGridLines.Visible = true;

            NScaleStrip strip = new NScaleStrip();

            strip.Fill       = new NColorFill(new NColor(NColor.Gray, 100));
            strip.Interlaced = true;
            linearScale.Strips.Add(strip);
            linearScale.MajorGridLines.Visible = true;

            // setup polar angle axis
            NPolarAxis angleAxis = m_Chart.Axes[ENPolarAxis.PrimaryAngle];

            NOrdinalScale ordinalScale = new NOrdinalScale();

            strip            = new NScaleStrip();
            strip.Fill       = new NColorFill(new NColor(NColor.DarkGray, 100));
            strip.Interlaced = true;
            ordinalScale.Strips.Add(strip);

            ordinalScale.InflateContentRange           = false;
            ordinalScale.MajorTickMode                 = ENMajorTickMode.CustomTicks;
            ordinalScale.DisplayDataPointsBetweenTicks = false;

            ordinalScale.MajorTickMode = ENMajorTickMode.CustomStep;
            ordinalScale.CustomStep    = 1;
            string[] labels = new string[] { "E", "NE", "N", "NW", "W", "SW", "S", "SE" };

            ordinalScale.Labels.TextProvider = new NOrdinalScaleLabelTextProvider(labels);
            ordinalScale.Labels.DisplayLast  = false;

            angleAxis.Scale             = ordinalScale;
            angleAxis.ViewRangeMode     = ENAxisViewRangeMode.FixedRange;
            angleAxis.MinViewRangeValue = 0;
            angleAxis.MaxViewRangeValue = 8;

            NPolarRangeSeries polarRange = new NPolarRangeSeries();

            polarRange.DataLabelStyle = new NDataLabelStyle(false);
            m_Chart.Series.Add(polarRange);

            Random rand = new Random();

            for (int i = 0; i < 8; i++)
            {
                polarRange.DataPoints.Add(new NPolarRangeDataPoint(i - 0.4, 0.0, i + 0.4, rand.Next(80) + 20.0));
            }

            chartView.Document.StyleSheets.ApplyTheme(new NChartTheme(ENChartPalette.Bright, false));

            return(chartView);
        }