protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { WebExamplesUtilities.FillComboWithValues(BeginAngleDropDownList, 0, 360, 15); DockRedAxisCheckBox.Checked = false; PaintReflectionOfRedAxisCheckBox.Checked = false; DockGreenAxisCheckBox.Checked = true; PaintReflectionOfGreenAxisCheckBox.Checked = true; } // nChartControl1.BackgroundStyle.FrameStyle.Visible = false; // set a chart title NLabel title = nChartControl1.Labels.AddHeader("Polar Value Axis Position"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 14, FontStyle.Italic); title.TextStyle.ShadowStyle.Type = ShadowType.LinearBlur; title.ContentAlignment = ContentAlignment.BottomRight; title.Location = new NPointL( new NLength(2, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); // setup chart NPolarChart polarChart = new NPolarChart(); nChartControl1.Charts.Clear(); nChartControl1.Charts.Add(polarChart); polarChart.Projection.SetPredefinedProjection(PredefinedProjection.Orthogonal); polarChart.DisplayOnLegend = nChartControl1.Legends[0]; polarChart.Location = new NPointL(new NLength(5, NRelativeUnit.ParentPercentage), new NLength(10, NRelativeUnit.ParentPercentage)); polarChart.Size = new NSizeL(new NLength(95, NRelativeUnit.ParentPercentage), new NLength(87, NRelativeUnit.ParentPercentage));; // setup polar axis NLinearScaleConfigurator linearScale = (NLinearScaleConfigurator)polarChart.Axis(StandardAxis.Polar).ScaleConfigurator; linearScale.RoundToTickMax = true; linearScale.RoundToTickMin = true; linearScale.MajorGridStyle.LineStyle.Pattern = LinePattern.Dot; linearScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); // setup polar angle axis NAngularScaleConfigurator angularScale = (NAngularScaleConfigurator)polarChart.Axis(StandardAxis.PolarAngle).ScaleConfigurator; angularScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); angularScale.MinTickDistance = new NLength(50); angularScale.LabelStyle.TextStyle.FontStyle.EmSize = new NLength(8); NScaleStripStyle strip = new NScaleStripStyle(); strip.FillStyle = new NColorFillStyle(Color.FromArgb(64, 192, 192, 192)); strip.Interlaced = true; strip.SetShowAtWall(ChartWallType.Polar, true); angularScale.StripStyles.Add(strip); // add a const line NAxisConstLine line = polarChart.Axis(StandardAxis.Polar).ConstLines.Add(); line.Value = 50; line.StrokeStyle.Color = Color.SlateBlue; line.StrokeStyle.Width = new NLength(1, NGraphicsUnit.Pixel); // create a polar line series NPolarLineSeries series1 = new NPolarLineSeries(); polarChart.Series.Add(series1); series1.Name = "Series 1"; series1.CloseContour = true; series1.DataLabelStyle.Visible = false; series1.MarkerStyle.Visible = false; series1.MarkerStyle.Width = new NLength(1, NRelativeUnit.ParentPercentage); series1.MarkerStyle.Height = new NLength(1, NRelativeUnit.ParentPercentage); Curve1(series1, 50); // create a polar line series NPolarLineSeries series2 = new NPolarLineSeries(); polarChart.Series.Add(series2); series2.Name = "Series 2"; series2.CloseContour = true; series2.DataLabelStyle.Visible = false; series2.MarkerStyle.Visible = false; series2.MarkerStyle.Width = new NLength(1, NRelativeUnit.ParentPercentage); series2.MarkerStyle.Height = new NLength(1, NRelativeUnit.ParentPercentage); Curve2(series2, 100); // add a second value axes NPolarAxis primaryAxis = (NPolarAxis)polarChart.Axis(StandardAxis.Polar); NPolarAxis secondaryAxis = ((NPolarAxisCollection)polarChart.Axes).AddCustomAxis(PolarAxisOrientation.Value); m_CustomAxisId = secondaryAxis.AxisId; NCrossPolarAxisAnchor secondaryAnchor = secondaryAxis.Anchor as NCrossPolarAxisAnchor; secondaryAnchor.Crossings.Clear(); secondaryAnchor.Crossings.Add(new NValueAxisCrossing(primaryAxis, 90)); // apply style sheet NStyleSheet styleSheet = NStyleSheet.CreatePredefinedStyleSheet(PredefinedStyleSheet.Fresh); styleSheet.Apply(nChartControl1.Document); // color code the axes and series after the stylesheet is applied ApplyColorToAxis(primaryAxis, Color.Red); ApplyColorToAxis(secondaryAxis, Color.Green); series1.BorderStyle.Color = Color.DarkRed; series1.BorderStyle.Width = new NLength(2); series2.BorderStyle.Color = Color.DarkGreen; series2.BorderStyle.Width = new NLength(2); series2.DisplayOnAxis(StandardAxis.Polar, false); series2.DisplayOnAxis(m_CustomAxisId, true); // apply the polar orientation polarChart.BeginAngle = BeginAngleDropDownList.SelectedIndex * 15; // set angle of axis labels NAxis angleAxis = polarChart.Axis(StandardAxis.PolarAngle); NStandardScaleConfigurator scale = (NStandardScaleConfigurator)angleAxis.ScaleConfigurator; scale.LabelStyle.Angle = new NScaleLabelAngle(ScaleLabelAngleMode.Scale, 0); // configure the red axis NAxis redAxis = polarChart.Axis(StandardAxis.Polar); NPolarAxisAnchor redAnchor; if (DockRedAxisCheckBox.Checked) { redAnchor = new NDockPolarAxisAnchor(PolarAxisDockZone.Bottom); } else { NCrossPolarAxisAnchor crossAnchor = new NCrossPolarAxisAnchor(); crossAnchor.Crossings.Add(new NValueAxisCrossing(angleAxis, 0)); redAnchor = crossAnchor; } redAnchor.PaintReflection = PaintReflectionOfRedAxisCheckBox.Checked; redAxis.Anchor = redAnchor; // configure the green axis NAxis greenAxis = polarChart.Axis(m_CustomAxisId); NPolarAxisAnchor greenAnchor; if (DockGreenAxisCheckBox.Checked) { NDockPolarAxisAnchor dockAnchor = new NDockPolarAxisAnchor(PolarAxisDockZone.Left); greenAnchor = dockAnchor; } else { NCrossPolarAxisAnchor crossAnchor = new NCrossPolarAxisAnchor(); crossAnchor.Crossings.Add(new NValueAxisCrossing(angleAxis, 90)); greenAnchor = crossAnchor; } greenAnchor.PaintReflection = PaintReflectionOfGreenAxisCheckBox.Checked; greenAxis.Anchor = greenAnchor; }
/// <summary> /// /// </summary> /// <returns></returns> protected override NWidget CreateExampleContent() { NChartView chartView = CreatePolarChartView(); // configure title chartView.Surface.Titles[0].Text = "Polar Angle Axis Position"; // configure chart m_Chart = (NPolarChart)chartView.Surface.Charts[0]; m_Chart.SetPredefinedPolarAxes(ENPredefinedPolarAxes.AngleSecondaryAngleValue); // setup chart m_Chart.InnerRadius = 40; // create a polar line series NPolarLineSeries series1 = new NPolarLineSeries(); m_Chart.Series.Add(series1); series1.Name = "Series 1"; series1.CloseContour = true; series1.DataLabelStyle = new NDataLabelStyle(false); series1.MarkerStyle = new NMarkerStyle(false); series1.UseXValues = true; Curve1(series1, 50); // create a polar line series NPolarLineSeries series2 = new NPolarLineSeries(); m_Chart.Series.Add(series2); series2.Name = "Series 2"; series2.CloseContour = true; series2.DataLabelStyle = new NDataLabelStyle(false); series2.MarkerStyle = new NMarkerStyle(false); series2.UseXValues = true; Curve2(series2, 100); // 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; linearScale.MajorGridLines.Stroke = new NStroke(1, NColor.Gray, ENDashStyle.Solid); NScaleStrip strip = new NScaleStrip(); strip.Fill = new NColorFill(NColor.Beige); strip.Interlaced = true; linearScale.Strips.Add(strip); // setup polar angle axis NAngularScale degreeScale = (NAngularScale)m_Chart.Axes[ENPolarAxis.PrimaryAngle].Scale; degreeScale.MajorGridLines.Visible = true; degreeScale.Labels.Style.Angle = new NScaleLabelAngle(ENScaleLabelAngleMode.Scale, 0); // add a second value axes NPolarAxis valueAxis = m_Chart.Axes[ENPolarAxis.PrimaryValue]; m_RedAxis = m_Chart.Axes[ENPolarAxis.PrimaryAngle]; m_GreenAxis = m_Chart.Axes[ENPolarAxis.SecondaryAngle]; NAngularScale gradScale = new NAngularScale(); gradScale.AngleUnit = NUnit.Grad; gradScale.Labels.Style.Angle = new NScaleLabelAngle(ENScaleLabelAngleMode.Scale, 0); m_GreenAxis.Scale = gradScale; m_GreenAxis.Anchor = new NValueCrossPolarAxisAnchor(70, m_RedAxis, ENPolarAxisOrientation.Angle, ENScaleOrientation.Right); m_RedAxis.Anchor = new NDockPolarAxisAnchor(ENPolarAxisDockZone.OuterRim); m_Chart.Axes[ENPolarAxis.PrimaryValue].Anchor = new NValueCrossPolarAxisAnchor(90, m_RedAxis, ENPolarAxisOrientation.Value, ENScaleOrientation.Auto); // apply style sheet // color code the axes and series after the stylesheet is applied m_RedAxis.Scale.SetColor(NColor.Red); m_GreenAxis.Scale.SetColor(NColor.Green); series2.ValueAxis = m_GreenAxis; return(chartView); }
public override void Initialize() { base.Initialize(); // set a chart title NLabel title = nChartControl1.Labels.AddHeader("Polar Angle Axis Position"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, FontStyle.Italic); title.ContentAlignment = ContentAlignment.BottomCenter; title.Location = new NPointL(new NLength(50, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); // setup chart NPolarChart polar = new NPolarChart(); nChartControl1.Charts.Clear(); nChartControl1.Charts.Add(polar); polar.Projection.SetPredefinedProjection(PredefinedProjection.Orthogonal); polar.DisplayOnLegend = nChartControl1.Legends[0]; polar.Depth = 5; polar.Width = 70.0f; polar.Height = 70.0f; // create a polar line series NPolarLineSeries series1 = new NPolarLineSeries(); polar.Series.Add(series1); series1.Name = "Series 1"; series1.CloseContour = true; series1.DataLabelStyle.Visible = false; series1.MarkerStyle.Visible = false; series1.MarkerStyle.Width = new NLength(1, NRelativeUnit.ParentPercentage); series1.MarkerStyle.Height = new NLength(1, NRelativeUnit.ParentPercentage); Curve1(series1, 50); // create a polar line series NPolarLineSeries series2 = new NPolarLineSeries(); polar.Series.Add(series2); series2.Name = "Series 2"; series2.CloseContour = true; series2.DataLabelStyle.Visible = false; series2.MarkerStyle.Visible = false; series2.MarkerStyle.Width = new NLength(1, NRelativeUnit.ParentPercentage); series2.MarkerStyle.Height = new NLength(1, NRelativeUnit.ParentPercentage); Curve2(series2, 100); // setup polar axis NLinearScaleConfigurator linearScale = (NLinearScaleConfigurator)polar.Axis(StandardAxis.Polar).ScaleConfigurator; linearScale.RoundToTickMax = true; linearScale.RoundToTickMin = true; linearScale.MajorGridStyle.LineStyle.Pattern = LinePattern.Dot; linearScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); NScaleStripStyle strip = new NScaleStripStyle(); strip.FillStyle = new NColorFillStyle(Color.Beige); strip.Interlaced = true; strip.SetShowAtWall(ChartWallType.Polar, true); linearScale.StripStyles.Add(strip); // setup polar angle axis NAngularScaleConfigurator degreeScale = (NAngularScaleConfigurator)polar.Axis(StandardAxis.PolarAngle).ScaleConfigurator; degreeScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); degreeScale.LabelStyle.Angle = new NScaleLabelAngle(ScaleLabelAngleMode.Scale, 0); degreeScale.SetPredefinedScaleStyle(PredefinedScaleStyle.Scientific); // add a second value axes NPolarAxis valueAxis = (NPolarAxis)polar.Axis(StandardAxis.Polar); NPolarAxis primaryAxis = (NPolarAxis)polar.Axis(StandardAxis.PolarAngle); NPolarAxis secondaryAxis = ((NPolarAxisCollection)polar.Axes).AddCustomAxis(PolarAxisOrientation.Angle); NAngularScaleConfigurator gradScale = new NAngularScaleConfigurator(); gradScale.AngleUnit = NAngleUnit.Grad; gradScale.LabelStyle.Angle = new NScaleLabelAngle(ScaleLabelAngleMode.Scale, 0); gradScale.SetPredefinedScaleStyle(PredefinedScaleStyle.Scientific); secondaryAxis.ScaleConfigurator = gradScale; m_CustomAxisId = secondaryAxis.AxisId; NCrossPolarAxisAnchor secondaryAnchor = new NCrossPolarAxisAnchor(PolarAxisOrientation.Angle); secondaryAnchor.Crossings.Add(new NValueAxisCrossing(valueAxis, 10)); // apply style sheet NStyleSheet styleSheet = NStyleSheet.CreatePredefinedStyleSheet(PredefinedStyleSheet.Fresh); styleSheet.Apply(nChartControl1.Document); // color code the axes and series after the stylesheet is applied ApplyColorToAxis(primaryAxis, Color.Red); ApplyColorToAxis(secondaryAxis, Color.Green); series1.BorderStyle.Width = new NLength(2); series2.BorderStyle.Width = new NLength(2); DockDegreeAxisCheckBox.Checked = true; DockGradAxisCheckBox.Checked = false; DegreeAxisCrossValueUpDown.Value = 70; GradAxisCrossValueUpDown.Value = 50; }
/// <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); }
public override void Initialize() { base.Initialize(); nChartControl1.Panels.Clear(); // set a chart title NLabel title = nChartControl1.Labels.AddHeader("Real Time Polar"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, FontStyle.Italic); title.ContentAlignment = ContentAlignment.BottomCenter; title.Location = new NPointL(new NLength(50, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); // setup chart NPolarChart chart = new NPolarChart(); nChartControl1.Panels.Add(chart); chart.Projection.SetPredefinedProjection(PredefinedProjection.Orthogonal); chart.InnerRadius = new NLength(10, NGraphicsUnit.Point); chart.Width = 70.0f; chart.Height = 70.0f; Color gridColor = Color.Green; NPolarAxis polarAngleAxis = (NPolarAxis)chart.Axis(StandardAxis.PolarAngle); NAngularScaleConfigurator angleScale = (NAngularScaleConfigurator)polarAngleAxis.ScaleConfigurator; angleScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); angleScale.MajorGridStyle.LineStyle.Color = gridColor; angleScale.OuterMajorTickStyle.LineStyle.Color = gridColor; angleScale.InnerMajorTickStyle.LineStyle.Color = gridColor; angleScale.LabelStyle.TextStyle.FillStyle = new NColorFillStyle(gridColor); angleScale.RulerStyle.BorderStyle.Color = gridColor; angleScale.LabelFitModes = new LabelFitMode[0]; m_RadarRay = new NAxisConstLine[10]; for (int i = 0; i < m_RadarRay.Length; i++) { m_RadarRay[i] = new NAxisConstLine(); m_RadarRay[i].StrokeStyle.Color = Color.FromArgb((byte)((1.0 - ((float)i / m_RadarRay.Length)) * 255), gridColor); polarAngleAxis.ConstLines.Add(m_RadarRay[i]); } // setup polar axis NLinearScaleConfigurator linearScale = (NLinearScaleConfigurator)chart.Axis(StandardAxis.Polar).ScaleConfigurator; linearScale.RoundToTickMax = true; linearScale.RoundToTickMin = true; linearScale.MajorGridStyle.LineStyle.Pattern = LinePattern.Dot; linearScale.AutoLabels = false; linearScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); linearScale.MajorGridStyle.LineStyle.Color = gridColor; linearScale.InnerMajorTickStyle.Width = new NLength(0); linearScale.OuterMajorTickStyle.Width = new NLength(0); linearScale.RulerStyle.BorderStyle.Width = new NLength(0); // create three polar point series m_PolarSeries = new NPolarPointSeries(); m_PolarSeries.Name = "Polar"; m_PolarSeries.BorderStyle.Width = new NLength(0); m_PolarSeries.PointShape = PointShape.Bar; m_PolarSeries.Size = new NLength(4, NGraphicsUnit.Point); m_PolarSeries.Angles.ValueFormatter = new NNumericValueFormatter("0.00"); m_PolarSeries.DataLabelStyle.Visible = false; m_PolarSeries.DataLabelStyle.Format = "<value> - <angle_in_degrees>"; // change the storage type to array to increase performance m_PolarSeries.FillStyles.StorageType = IndexedStorageType.Array; Random rand = new Random(); for (int i = 0; i < 360; i++) { m_PolarSeries.Values.Add(rand.Next(100)); m_PolarSeries.Angles.Add(i); m_PolarSeries.FillStyles[i] = new NColorFillStyle(Color.FromArgb(0, Color.Green)); } // add the series to the chart chart.Series.Add(m_PolarSeries); ConfigureStandardLayout(chart, title, null); UseHardwareAccelerationCheckBox.Checked = true; StartTimer(); }
protected void Page_Load(object sender, EventArgs e) { nChartControl1.BackgroundStyle.FrameStyle.Visible = false; if (!IsPostBack) { WebExamplesUtilities.FillComboWithValues(BeginAngleDropDownList, 0, 360, 15); DockDegreeAxisCheckBox.Checked = true; DockGradAxisCheckBox.Checked = false; } // set a chart title NLabel title = nChartControl1.Labels.AddHeader("Polar Angle Axis Position"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 14, FontStyle.Italic); title.TextStyle.ShadowStyle.Type = ShadowType.LinearBlur; title.ContentAlignment = ContentAlignment.BottomRight; title.Location = new NPointL( new NLength(2, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); // setup chart NPolarChart polarChart = new NPolarChart(); nChartControl1.Charts.Clear(); nChartControl1.Charts.Add(polarChart); polarChart.Projection.SetPredefinedProjection(PredefinedProjection.Orthogonal); polarChart.DisplayOnLegend = nChartControl1.Legends[0]; polarChart.Location = new NPointL(new NLength(5, NRelativeUnit.ParentPercentage), new NLength(10, NRelativeUnit.ParentPercentage)); polarChart.Size = new NSizeL(new NLength(90, NRelativeUnit.ParentPercentage), new NLength(87, NRelativeUnit.ParentPercentage)); // create a polar line series NPolarLineSeries series1 = new NPolarLineSeries(); polarChart.Series.Add(series1); series1.Name = "Series 1"; series1.CloseContour = true; series1.DataLabelStyle.Visible = false; series1.MarkerStyle.Visible = false; series1.MarkerStyle.Width = new NLength(1, NRelativeUnit.ParentPercentage); series1.MarkerStyle.Height = new NLength(1, NRelativeUnit.ParentPercentage); Curve1(series1, 50); // create a polar line series NPolarLineSeries series2 = new NPolarLineSeries(); polarChart.Series.Add(series2); series2.Name = "Series 2"; series2.CloseContour = true; series2.DataLabelStyle.Visible = false; series2.MarkerStyle.Visible = false; series2.MarkerStyle.Width = new NLength(1, NRelativeUnit.ParentPercentage); series2.MarkerStyle.Height = new NLength(1, NRelativeUnit.ParentPercentage); Curve2(series2, 100); // setup polar axis NLinearScaleConfigurator linearScale = (NLinearScaleConfigurator)polarChart.Axis(StandardAxis.Polar).ScaleConfigurator; linearScale.RoundToTickMax = true; linearScale.RoundToTickMin = true; linearScale.MajorGridStyle.LineStyle.Pattern = LinePattern.Dot; linearScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); NScaleStripStyle strip = new NScaleStripStyle(); strip.FillStyle = new NColorFillStyle(Color.Beige); strip.Interlaced = true; strip.SetShowAtWall(ChartWallType.Polar, true); linearScale.StripStyles.Add(strip); // setup polar angle axis NAngularScaleConfigurator degreeScale = (NAngularScaleConfigurator)polarChart.Axis(StandardAxis.PolarAngle).ScaleConfigurator; degreeScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); degreeScale.LabelStyle.Angle = new NScaleLabelAngle(ScaleLabelAngleMode.Scale, 0); degreeScale.SetPredefinedScaleStyle(PredefinedScaleStyle.Scientific); // add a second value axes NPolarAxis valueAxis = (NPolarAxis)polarChart.Axis(StandardAxis.Polar); NPolarAxis degreeAxis = (NPolarAxis)polarChart.Axis(StandardAxis.PolarAngle); NPolarAxis gradAxis = ((NPolarAxisCollection)polarChart.Axes).AddCustomAxis(PolarAxisOrientation.Angle); NAngularScaleConfigurator gradScale = new NAngularScaleConfigurator(); gradScale.AngleUnit = NAngleUnit.Grad; gradScale.LabelStyle.Angle = new NScaleLabelAngle(ScaleLabelAngleMode.Scale, 0); gradScale.SetPredefinedScaleStyle(PredefinedScaleStyle.Scientific); gradAxis.ScaleConfigurator = gradScale; m_CustomAxisId = gradAxis.AxisId; NCrossPolarAxisAnchor secondaryAnchor = new NCrossPolarAxisAnchor(PolarAxisOrientation.Angle); secondaryAnchor.Crossings.Add(new NValueAxisCrossing(valueAxis, 10)); // apply style sheet NStyleSheet styleSheet = NStyleSheet.CreatePredefinedStyleSheet(PredefinedStyleSheet.Fresh); styleSheet.Apply(nChartControl1.Document); // color code the axes and series after the stylesheet is applied ApplyColorToAxis(degreeAxis, Color.Red); ApplyColorToAxis(gradAxis, Color.Green); series1.BorderStyle.Width = new NLength(2); series2.BorderStyle.Width = new NLength(2); // set the begin angle polarChart.BeginAngle = BeginAngleDropDownList.SelectedIndex * 15; // configure axis docking / crossing if (DockDegreeAxisCheckBox.Checked) { degreeAxis.Anchor = new NDockPolarAxisAnchor(); } else { degreeAxis.Anchor = new NCrossPolarAxisAnchor(PolarAxisOrientation.Angle, new NValueAxisCrossing(valueAxis, 0.0)); } if (DockGradAxisCheckBox.Checked) { gradAxis.Anchor = new NDockPolarAxisAnchor(); } else { gradAxis.Anchor = new NCrossPolarAxisAnchor(PolarAxisOrientation.Angle, new NValueAxisCrossing(valueAxis, 100.0)); } }
public override void Initialize() { base.Initialize(); // set a chart title NLabel title = nChartControl1.Labels.AddHeader("Polar Value Axis Position"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, FontStyle.Italic); title.ContentAlignment = ContentAlignment.BottomCenter; title.Location = new NPointL(new NLength(50, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); // setup chart NPolarChart polar = new NPolarChart(); polar.InnerRadius = new NLength(20); nChartControl1.Charts.Clear(); nChartControl1.Charts.Add(polar); polar.Projection.SetPredefinedProjection(PredefinedProjection.Orthogonal); polar.DisplayOnLegend = nChartControl1.Legends[0]; // setup polar axis NLinearScaleConfigurator linearScale = (NLinearScaleConfigurator)polar.Axis(StandardAxis.Polar).ScaleConfigurator; linearScale.RoundToTickMax = true; linearScale.RoundToTickMin = true; linearScale.MajorGridStyle.LineStyle.Pattern = LinePattern.Dot; linearScale.MajorGridStyle.SetShowAtWall(ChartWallType.Back, true); // setup polar angle axis NAngularScaleConfigurator angularScale = (NAngularScaleConfigurator)polar.Axis(StandardAxis.PolarAngle).ScaleConfigurator; angularScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); angularScale.LabelStyle.Angle = new NScaleLabelAngle(ScaleLabelAngleMode.Scale, 0); NScaleStripStyle strip = new NScaleStripStyle(); strip.FillStyle = new NColorFillStyle(Color.FromArgb(125, 192, 192, 192)); strip.Interlaced = true; strip.SetShowAtWall(ChartWallType.Polar, true); angularScale.StripStyles.Add(strip); // add a const line NAxisConstLine line = polar.Axis(StandardAxis.Polar).ConstLines.Add(); line.Value = 50; line.StrokeStyle.Color = Color.SlateBlue; line.StrokeStyle.Width = new NLength(1, NGraphicsUnit.Pixel); // create a polar line series NPolarLineSeries series1 = new NPolarLineSeries(); polar.Series.Add(series1); series1.Name = "Series 1"; series1.CloseContour = true; series1.DataLabelStyle.Visible = false; series1.MarkerStyle.Visible = false; series1.MarkerStyle.Width = new NLength(1, NRelativeUnit.ParentPercentage); series1.MarkerStyle.Height = new NLength(1, NRelativeUnit.ParentPercentage); Curve1(series1, 50); // create a polar line series NPolarLineSeries series2 = new NPolarLineSeries(); polar.Series.Add(series2); series2.Name = "Series 2"; series2.CloseContour = true; series2.DataLabelStyle.Visible = false; series2.MarkerStyle.Visible = false; series2.MarkerStyle.Width = new NLength(1, NRelativeUnit.ParentPercentage); series2.MarkerStyle.Height = new NLength(1, NRelativeUnit.ParentPercentage); Curve2(series2, 100); // add a second value axes NPolarAxis primaryAxis = (NPolarAxis)polar.Axis(StandardAxis.Polar); NPolarAxis secondaryAxis = ((NPolarAxisCollection)polar.Axes).AddCustomAxis(PolarAxisOrientation.Value); m_CustomAxisId = secondaryAxis.AxisId; // apply style sheet NStyleSheet styleSheet = NStyleSheet.CreatePredefinedStyleSheet(PredefinedStyleSheet.Fresh); styleSheet.Apply(nChartControl1.Document); // color code the axes and series after the stylesheet is applied ApplyColorToAxis(primaryAxis, Color.Red); ApplyColorToAxis(secondaryAxis, Color.Green); series1.BorderStyle.Color = Color.DarkRed; series1.BorderStyle.Width = new NLength(2); series2.BorderStyle.Color = Color.DarkGreen; series2.BorderStyle.Width = new NLength(2); series2.DisplayOnAxis(StandardAxis.Polar, false); series2.DisplayOnAxis(m_CustomAxisId, true); // init form controls RadianAngleStepComboBox.Items.Add("15"); RadianAngleStepComboBox.Items.Add("30"); RadianAngleStepComboBox.Items.Add("45"); RadianAngleStepComboBox.Items.Add("90"); RadianAngleStepComboBox.SelectedIndex = 0; RedAxisAngleUpDown.Value = (decimal)0; RedBeginUpDown.Value = (decimal)0; RedEndUpDown.Value = (decimal)100; GreenAxisAngleUpDown.Value = (decimal)90; GreenBeginUpDown.Value = (decimal)0; GreenEndUpDown.Value = (decimal)100; }
/// <summary> /// Called to initialize the example /// </summary> /// <param name="chartControl"></param> public override void Create() { // set a chart title NLabel title = nChartControl1.Labels.AddHeader("Polar Range"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, System.Drawing.FontStyle.Italic); title.ContentAlignment = ContentAlignment.BottomCenter; title.Location = new NPointL(new NLength(50, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); // setup polar chart NPolarChart chart = new NPolarChart(); nChartControl1.Charts.Clear(); nChartControl1.Charts.Add(chart); // setup polar axis NLinearScaleConfigurator linearScale = (NLinearScaleConfigurator)chart.Axis(StandardAxis.Polar).ScaleConfigurator; linearScale.ViewRangeInflateMode = ScaleViewRangeInflateMode.MajorTick; linearScale.InflateViewRangeBegin = true; linearScale.InflateViewRangeEnd = true; NScaleStripStyle strip = new NScaleStripStyle(); strip.FillStyle = new NColorFillStyle(Color.FromArgb(100, Color.Gray)); strip.Interlaced = true; strip.SetShowAtWall(ChartWallType.Polar, true); linearScale.StripStyles.Add(strip); linearScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); // setup polar angle axis NPolarAxis angleAxis = (NPolarAxis)chart.Axis(StandardAxis.PolarAngle); NOrdinalScaleConfigurator ordinalScale = new NOrdinalScaleConfigurator(); strip = new NScaleStripStyle(); strip.FillStyle = new NColorFillStyle(Color.FromArgb(100, Color.DarkGray)); strip.Interlaced = true; strip.SetShowAtWall(ChartWallType.Polar, true); ordinalScale.StripStyles.Add(strip); ordinalScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); ordinalScale.InflateContentRange = false; ordinalScale.MajorTickMode = MajorTickMode.CustomTicks; ordinalScale.DisplayDataPointsBetweenTicks = false; ordinalScale.MajorTickMode = MajorTickMode.CustomStep; ordinalScale.CustomStep = 1; string[] labels = new string[] { "E", "NE", "N", "NW", "W", "SW", "S", "SE" }; ordinalScale.AutoLabels = false; ordinalScale.Labels.AddRange(labels); ordinalScale.DisplayLastLabel = false; angleAxis.ScaleConfigurator = ordinalScale; angleAxis.View = new NRangeAxisView(new NRange1DD(0, 8)); NPolarRangeSeries polarRange = new NPolarRangeSeries(); polarRange.DataLabelStyle.Visible = false; chart.Series.Add(polarRange); Random rand = new Random(); for (int i = 0; i < 8; i++) { polarRange.Values.Add(0); polarRange.Angles.Add(i - 0.4); polarRange.Y2Values.Add(rand.Next(80) + 20.0); polarRange.X2Values.Add(i + 0.4); } // apply style sheet NStyleSheet styleSheet = NStyleSheet.CreatePredefinedStyleSheet(PredefinedStyleSheet.Fresh); styleSheet.Apply(nChartControl1.Document); // init form controls BeginAngleScrollBar.Value = 0.0f; }