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