internal static void Curve1(NPolarLineSeries series, int count) { series.DataPoints.Clear(); double angleStep = 2 * Math.PI / count; for (int i = 0; i < count; i++) { double angle = i * angleStep; double radius = 1 + Math.Cos(angle); series.DataPoints.Add(new NPolarLineDataPoint((double)(angle * 180.0 / Math.PI), radius)); } }
/// <summary> /// /// </summary> /// <param name="series"></param> /// <param name="count"></param> internal static void Curve3(NPolarLineSeries series, int count) { series.DataPoints.Clear(); double angleStep = 4 * Math.PI / count; for (int i = 0; i < count; i++) { double angle = i * angleStep; double radius = 0.2 + angle / 5.0; series.DataPoints.Add(new NPolarLineDataPoint(angle * 180 / Math.PI, radius)); } }
/// <summary> /// /// </summary> /// <param name="series"></param> /// <param name="count"></param> internal static void Curve2(NPolarLineSeries series, int count) { series.DataPoints.Clear(); double angleStep = 2 * Math.PI / count; for (int i = 0; i < count; i++) { double angle = i * angleStep; double radius = 0.2 + 1.7 * Math.Sin(2 * angle) + 1.7 * Math.Cos(2 * angle); radius = Math.Abs(radius); series.DataPoints.Add(new NPolarLineDataPoint(angle * 180 / Math.PI, radius)); } }
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; }
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 Line"; // 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.Beige, 125)); strip.Interlaced = true; linearScale.Strips.Add(strip); // setup polar angle axis NAngularScale angularScale = (NAngularScale)m_Chart.Axes[ENPolarAxis.PrimaryAngle].Scale; strip = new NScaleStrip(); strip.Fill = new NColorFill(NColor.FromRGBA(192, 192, 192, 125)); strip.Interlaced = true; angularScale.Strips.Add(strip); // add a const line NAxisReferenceLine line = new NAxisReferenceLine(); m_Chart.Axes[ENPolarAxis.PrimaryValue].ReferenceLines.Add(line); line.Value = 50; line.Stroke = new NStroke(1, NColor.SlateBlue); // 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); Curve1(series1, 50); // create a polar line series NPolarLineSeries series2 = new NPolarLineSeries(); m_Chart.Series.Add(series2); series2.Name = "Series 2"; series2.DataLabelStyle = new NDataLabelStyle(false); series2.CloseContour = true; Curve2(series2, 100); // create a polar line series NPolarLineSeries series3 = new NPolarLineSeries(); m_Chart.Series.Add(series3); series3.Name = "Series 3"; series3.CloseContour = false; series3.DataLabelStyle = new NDataLabelStyle(false); Curve3(series3, 100); chartView.Document.StyleSheets.ApplyTheme(new NChartTheme(ENChartPalette.Bright, false)); return(chartView); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { WebExamplesUtilities.FillComboWithValues(BeginAngleDropDownList, 0, 360, 15); AngleStepDropDownList.Items.Add("15"); AngleStepDropDownList.Items.Add("30"); AngleStepDropDownList.Items.Add("45"); AngleStepDropDownList.Items.Add("90"); AngleStepDropDownList.SelectedIndex = 0; } // disable frame nChartControl1.BackgroundStyle.FrameStyle.Visible = false; // set a chart title NLabel title = nChartControl1.Labels.AddHeader("Polar Line"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 14, FontStyle.Italic); title.TextStyle.ShadowStyle.Type = ShadowType.LinearBlur; title.TextStyle.FillStyle = new NColorFillStyle(Color.FromArgb(60, 90, 108)); 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.DisplayAxesOnTop = true; polarChart.DisplayOnLegend = nChartControl1.Legends[0]; polarChart.Location = new NPointL(new NLength(5, NRelativeUnit.ParentPercentage), new NLength(5, NRelativeUnit.ParentPercentage)); polarChart.Size = new NSizeL(new NLength(90, NRelativeUnit.ParentPercentage), new NLength(90, NRelativeUnit.ParentPercentage)); // setup polar axis NLinearScaleConfigurator linearScale = (NLinearScaleConfigurator)polarChart.Axis(StandardAxis.Polar).ScaleConfigurator; linearScale.RoundToTickMax = true; linearScale.RoundToTickMin = true; NScaleStripStyle strip = new NScaleStripStyle(); strip.FillStyle = new NColorFillStyle(Color.FromArgb(128, Color.Beige)); strip.Interlaced = true; strip.SetShowAtWall(ChartWallType.Polar, true); linearScale.StripStyles.Add(strip); // setup polar angle axis NAngularScaleConfigurator angularScale = (NAngularScaleConfigurator)polarChart.Axis(StandardAxis.PolarAngle).ScaleConfigurator; 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); // 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); // apply style sheet NStyleSheet styleSheet = NStyleSheet.CreatePredefinedStyleSheet(PredefinedStyleSheet.Fresh); styleSheet.Apply(nChartControl1.Charts[0].Series); // apply settings polarChart.BeginAngle = BeginAngleDropDownList.SelectedIndex * 15.0f; NAngularScaleConfigurator angleScale = polarChart.Axis(StandardAxis.PolarAngle).ScaleConfigurator as NAngularScaleConfigurator; angleScale.LabelStyle.Angle = new NScaleLabelAngle(ScaleLabelAngleMode.Scale, 0); switch (AngleStepDropDownList.SelectedIndex) { case 0: angleScale.MajorTickMode = MajorTickMode.CustomStep; angleScale.CustomStep = new NAngle(15, NAngleUnit.Degree); break; case 1: angleScale.MajorTickMode = MajorTickMode.CustomStep; angleScale.CustomStep = new NAngle(30, NAngleUnit.Degree); break; case 2: angleScale.MajorTickMode = MajorTickMode.CustomStep; angleScale.CustomStep = new NAngle(45, NAngleUnit.Degree); break; case 3: angleScale.MajorTickMode = MajorTickMode.CustomStep; angleScale.CustomStep = new NAngle(90, NAngleUnit.Degree); break; } }
/// <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); }
/// <summary> /// /// </summary> /// <returns></returns> protected override NWidget CreateExampleContent() { NChartView chartView = CreatePolarChartView(); // configure title chartView.Surface.Titles[0].Text = "Polar Value Axis Position"; // configure chart m_Chart = (NPolarChart)chartView.Surface.Charts[0]; m_Chart.SetPredefinedPolarAxes(ENPredefinedPolarAxes.AngleValue); // setup chart m_Chart.InnerRadius = 20; // setup polar axis NLinearScale linearScale = (NLinearScale)m_Chart.Axes[ENPolarAxis.PrimaryValue].Scale; linearScale.ViewRangeInflateMode = ENScaleViewRangeInflateMode.MajorTick; linearScale.InflateViewRangeBegin = true; linearScale.InflateViewRangeEnd = true; linearScale.Labels.OverlapResolveLayouts = new NDomArray <ENLevelLabelsLayout>(new ENLevelLabelsLayout[] { ENLevelLabelsLayout.AutoScale }); linearScale.MajorGridLines.Visible = true; linearScale.MajorGridLines.Stroke.DashStyle = ENDashStyle.Dash; // setup polar angle axis NAngularScale angularScale = (NAngularScale)m_Chart.Axes[ENPolarAxis.PrimaryAngle].Scale; angularScale.MajorGridLines.Visible = true; angularScale.Labels.Style.Angle = new NScaleLabelAngle(ENScaleLabelAngleMode.Scale, 0); NScaleStrip strip = new NScaleStrip(); strip.Fill = new NColorFill(new NColor(192, 192, 192, 125)); strip.Interlaced = true; angularScale.Strips.Add(strip); // add a const line NAxisReferenceLine referenceLine = new NAxisReferenceLine(); referenceLine.Value = 1.0; referenceLine.Stroke = new NStroke(1, NColor.SlateBlue); m_Chart.Axes[ENPolarAxis.PrimaryValue].ReferenceLines.Add(referenceLine); // create a polar line series NPolarLineSeries series1 = new NPolarLineSeries(); m_Chart.Series.Add(series1); series1.Name = "Series 1"; series1.CloseContour = true; series1.UseXValues = true; series1.DataLabelStyle = new NDataLabelStyle(false); NMarkerStyle markerStyle = new NMarkerStyle(); markerStyle.Visible = false; markerStyle.Size = new NSize(2, 2); series1.MarkerStyle = markerStyle; 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.UseXValues = true; series2.DataLabelStyle = new NDataLabelStyle(false); markerStyle = new NMarkerStyle(); markerStyle.Visible = false; series2.MarkerStyle = markerStyle; Curve2(series2, 100); // add a second value axes m_RedAxis = m_Chart.Axes[ENPolarAxis.PrimaryValue]; m_GreenAxis = m_Chart.AddCustomAxis(ENPolarAxisOrientation.Value); m_RedAxis.Anchor = new NValueCrossPolarAxisAnchor(0.0, m_Chart.Axes[ENPolarAxis.PrimaryAngle], ENPolarAxisOrientation.Value, ENScaleOrientation.Auto); m_GreenAxis.Anchor = new NValueCrossPolarAxisAnchor(90, m_Chart.Axes[ENPolarAxis.PrimaryAngle], ENPolarAxisOrientation.Value, ENScaleOrientation.Auto); // color code the axes and series after the stylesheet is applied m_RedAxis.Scale.SetColor(NColor.Red); m_GreenAxis.Scale.SetColor(NColor.Green); series1.Stroke = new NStroke(2, NColor.DarkRed); series2.Stroke = new NStroke(2, NColor.DarkGreen); series2.ValueAxis = m_GreenAxis; return(chartView); }
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 Line"); 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 chart NPolarChart chart = new NPolarChart(); nChartControl1.Charts.Clear(); nChartControl1.Charts.Add(chart); chart.Projection.SetPredefinedProjection(PredefinedProjection.Orthogonal); chart.DisplayOnLegend = nChartControl1.Legends[0]; chart.Depth = 5; chart.Width = 70.0f; chart.Height = 70.0f; // setup polar axis NLinearScaleConfigurator linearScale = (NLinearScaleConfigurator)chart.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.FromArgb(125, Color.Beige)); strip.Interlaced = true; strip.SetShowAtWall(ChartWallType.Polar, true); linearScale.StripStyles.Add(strip); // setup polar angle axis NAngularScaleConfigurator angularScale = (NAngularScaleConfigurator)chart.Axis(StandardAxis.PolarAngle).ScaleConfigurator; angularScale.MajorGridStyle.SetShowAtWall(ChartWallType.Polar, true); 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 = chart.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(); chart.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(); chart.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); // create a polar line series NPolarLineSeries series3 = new NPolarLineSeries(); chart.Series.Add(series3); series3.Name = "Series 3"; series3.CloseContour = false; series3.DataLabelStyle.Visible = false; series3.MarkerStyle.Visible = false; series3.MarkerStyle.Width = new NLength(1, NRelativeUnit.ParentPercentage); series3.MarkerStyle.Height = new NLength(1, NRelativeUnit.ParentPercentage); Curve3(series3, 100); // apply style sheet NStyleSheet styleSheet = NStyleSheet.CreatePredefinedStyleSheet(PredefinedStyleSheet.Fresh); styleSheet.Apply(nChartControl1.Document); // init form controls RadianAngleStepComboBox.Items.Add("15"); RadianAngleStepComboBox.Items.Add("30"); RadianAngleStepComboBox.Items.Add("45"); RadianAngleStepComboBox.Items.Add("90"); RadianAngleStepComboBox.SelectedIndex = 0; BeginAngleScrollBar.Value = 0.0f; }