/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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); }
/// <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); }