/// <summary> /// /// </summary> /// <param name="threeLineBreak"></param> private void GenerateData(NPointAndFigureSeries threeLineBreak) { NStockDataGenerator dataGenerator = new NStockDataGenerator(new NRange(50, 350), 0.002, 2); dataGenerator.Reset(); DateTime dt = DateTime.Now; for (int i = 0; i < 100; i++) { threeLineBreak.DataPoints.Add(new NPointAndFigureDataPoint(NDateTimeHelpers.ToOADate(dt), dataGenerator.GetNextValue())); dt = dt.AddDays(1); } }
/// <summary> /// Called to initialize the example /// </summary> /// <param name="chartControl"></param> public override void Create() { // remove all legends nChartControl1.Legends.Clear(); // set a chart title NLabel title = new NLabel("Point and Figure"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, System.Drawing.FontStyle.Italic); title.TextStyle.FillStyle = new NColorFillStyle(GreyBlue); const int nInitialBoxSize = 5; NChart chart = nChartControl1.Charts[0]; chart.BoundsMode = BoundsMode.Stretch; // setup X axis NPriceScaleConfigurator priceConfigurator = new NPriceScaleConfigurator(); priceConfigurator.LabelValueFormatter = new NDateTimeValueFormatter(DateTimeValueFormat.Date); priceConfigurator.MajorTickMode = MajorTickMode.AutoMaxCount; priceConfigurator.MajorGridStyle.ShowAtWalls = new ChartWallType[] { ChartWallType.Back }; priceConfigurator.InnerMajorTickStyle.LineStyle.Width = new NLength(0); priceConfigurator.MaxTickCount = 8; NNumericRangeSamplerProvider provider = new NNumericRangeSamplerProvider(); provider.SamplingMode = SamplingMode.CustomStep; provider.CustomStep = 1; provider.UseOrigin = true; provider.Origin = -0.5; priceConfigurator.MajorGridStyle.RangeSamplerProvider = provider; chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator = priceConfigurator; // setup Y axis NLinearScaleConfigurator scaleY = (NLinearScaleConfigurator)chart.Axis(StandardAxis.PrimaryY).ScaleConfigurator; scaleY.MajorTickMode = MajorTickMode.CustomStep; scaleY.CustomStep = nInitialBoxSize; scaleY.OuterMajorTickStyle.Width = new NLength(0); scaleY.InnerMajorTickStyle.Width = new NLength(0); scaleY.AutoMinorTicks = true; scaleY.MinorTickCount = 1; scaleY.RoundToTickMin = false; scaleY.RoundToTickMax = false; scaleY.MajorGridStyle.LineStyle.Width = new NLength(0); scaleY.MinorGridStyle.LineStyle.Width = new NLength(1); scaleY.MinorGridStyle.ShowAtWalls = new ChartWallType[] { ChartWallType.Back }; float[] highValues = new float[20] { 21.3F, 42.4F, 11.2F, 65.7F, 38.0F, 71.3F, 49.54F, 83.7F, 13.9F, 56.12F, 27.43F, 23.1F, 31.0F, 75.4F, 9.3F, 39.12F, 10.0F, 44.23F, 21.76F, 49.2F }; float[] lowValues = new float[20] { 12.1F, 14.32F, 8.43F, 36.0F, 13.5F, 47.34F, 24.54F, 68.11F, 6.87F, 23.3F, 12.12F, 14.54F, 25.0F, 37.2F, 3.9F, 23.11F, 1.9F, 14.0F, 8.23F, 34.21F }; // setup Point & Figure series m_PointAndFigure = (NPointAndFigureSeries)chart.Series.Add(SeriesType.PointAndFigure); m_PointAndFigure.UseXValues = true; // fill data m_PointAndFigure.HighValues.AddRange(highValues); m_PointAndFigure.LowValues.AddRange(lowValues); DateTime dt = new DateTime(2007, 1, 1); for (int i = 0; i < 20; i++) { m_PointAndFigure.XValues.Add(dt); dt = dt.AddDays(1); } // apply layout ConfigureStandardLayout(chart, title, null); NExampleHelpers.FillComboWithValues(BoxSizeComboBox, 1, 10, 1); BoxSizeComboBox.SelectedIndex = nInitialBoxSize + 1; NExampleHelpers.FillComboWithValues(ReversalAmountComboBox, 1, 10, 1); ReversalAmountComboBox.SelectedIndex = 3; }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { WebExamplesUtilities.FillComboWithColorNames(UpColorDropDownList, KnownColor.Red); WebExamplesUtilities.FillComboWithColorNames(DownColorDropDownList, KnownColor.Black); ProportionalXCheckBox.Checked = false; ProportionalYCheckBox.Checked = false; WebExamplesUtilities.FillComboWithFloatValues(BoxSizeDropdownlist, 0.5F, 10, 0.5F); BoxSizeDropdownlist.SelectedIndex = 9; WebExamplesUtilities.FillComboWithValues(ReversalAmountDropDownList, 1, 5, 1); ReversalAmountDropDownList.SelectedIndex = 2; } nChartControl1.BackgroundStyle.FrameStyle.Visible = false; // set a chart title NLabel title = nChartControl1.Labels.AddHeader("Point and Figure"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 14, FontStyle.Italic); title.TextStyle.ShadowStyle.Type = ShadowType.LinearBlur; // no legend nChartControl1.Legends.Clear(); // configure the chart NChart chart = nChartControl1.Charts[0]; chart.BoundsMode = BoundsMode.Stretch; // setup X axis NPriceScaleConfigurator priceConfigurator = new NPriceScaleConfigurator(); priceConfigurator.LabelValueFormatter = new NDateTimeValueFormatter(DateTimeValueFormat.Date); priceConfigurator.MajorTickMode = MajorTickMode.AutoMaxCount; priceConfigurator.MajorGridStyle.ShowAtWalls = new ChartWallType[] { ChartWallType.Back }; priceConfigurator.InnerMajorTickStyle.LineStyle.Width = new NLength(0); priceConfigurator.MaxTickCount = 8; NNumericRangeSamplerProvider provider = new NNumericRangeSamplerProvider(); provider.SamplingMode = SamplingMode.CustomStep; provider.CustomStep = 1; provider.UseOrigin = true; provider.Origin = -0.5; priceConfigurator.MajorGridStyle.RangeSamplerProvider = provider; chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator = priceConfigurator; // setup Y axis NLinearScaleConfigurator scaleY = (NLinearScaleConfigurator)chart.Axis(StandardAxis.PrimaryY).ScaleConfigurator; scaleY.MajorTickMode = MajorTickMode.CustomStep; scaleY.CustomStep = 5; scaleY.OuterMajorTickStyle.Width = new NLength(0); scaleY.InnerMajorTickStyle.Width = new NLength(0); scaleY.AutoMinorTicks = true; scaleY.MinorTickCount = 1; scaleY.RoundToTickMin = false; scaleY.RoundToTickMax = false; scaleY.MajorGridStyle.LineStyle.Width = new NLength(0); scaleY.MinorGridStyle.LineStyle.Width = new NLength(1); scaleY.MinorGridStyle.ShowAtWalls = new ChartWallType[] { ChartWallType.Back }; float[] highValues = new float[20] { 21.3F, 42.4F, 11.2F, 65.7F, 38.0F, 71.3F, 49.54F, 83.7F, 13.9F, 56.12F, 27.43F, 23.1F, 31.0F, 75.4F, 9.3F, 39.12F, 10.0F, 44.23F, 21.76F, 49.2F }; float[] lowValues = new float[20] { 12.1F, 14.32F, 8.43F, 36.0F, 13.5F, 47.34F, 24.54F, 68.11F, 6.87F, 23.3F, 12.12F, 14.54F, 25.0F, 37.2F, 3.9F, 23.11F, 1.9F, 14.0F, 8.23F, 34.21F }; // setup Point & Figure series NPointAndFigureSeries pointAndFigure = (NPointAndFigureSeries)chart.Series.Add(SeriesType.PointAndFigure); pointAndFigure.UseXValues = true; // fill data pointAndFigure.HighValues.AddRange(highValues); pointAndFigure.LowValues.AddRange(lowValues); DateTime dt = new DateTime(2007, 1, 1); for (int i = 0; i < 20; i++) { pointAndFigure.XValues.Add(dt); dt = dt.AddDays(1); } double dBoxSize = Convert.ToDouble(BoxSizeDropdownlist.SelectedValue); pointAndFigure.BoxSize = dBoxSize; scaleY.CustomStep = dBoxSize; pointAndFigure.ProportionalX = ProportionalXCheckBox.Checked; pointAndFigure.ProportionalY = ProportionalYCheckBox.Checked; pointAndFigure.ReversalAmount = Convert.ToInt32(ReversalAmountDropDownList.SelectedValue); pointAndFigure.UpStrokeStyle.Color = WebExamplesUtilities.ColorFromDropDownList(UpColorDropDownList); pointAndFigure.DownStrokeStyle.Color = WebExamplesUtilities.ColorFromDropDownList(DownColorDropDownList); // apply layout ApplyLayoutTemplate(0, nChartControl1, chart, title, null); }
/// <summary> /// /// </summary> /// <returns></returns> protected override NWidget CreateExampleContent() { NChartView chartView = CreateCartesianChartView(); // configure title chartView.Surface.Titles[0].Text = "Point And Figure"; // configure chart NCartesianChart chart = (NCartesianChart)chartView.Surface.Charts[0]; chart.SetPredefinedCartesianAxes(ENPredefinedCartesianAxis.XYLinear); // setup X axis NPriceTimeScale priceScale = new NPriceTimeScale(); priceScale.InnerMajorTicks.Stroke = new NStroke(0.0, NColor.Black); chart.Axes[ENCartesianAxis.PrimaryX].Scale = priceScale; const int nInitialBoxSize = 5; // setup Y axis NLinearScale scaleY = (NLinearScale)chart.Axes[ENCartesianAxis.PrimaryY].Scale; scaleY.MajorTickMode = ENMajorTickMode.CustomStep; scaleY.CustomStep = nInitialBoxSize; scaleY.OuterMajorTicks.Width = 0; scaleY.InnerMajorTicks.Width = 0; scaleY.AutoMinorTicks = true; scaleY.MinorTickCount = 1; scaleY.InflateViewRangeBegin = false; scaleY.InflateViewRangeEnd = false; scaleY.MajorGridLines.Stroke = new NStroke(0, NColor.Black); scaleY.MinorGridLines.Stroke = new NStroke(1, NColor.Black); float[] highValues = new float[20] { 21.3F, 42.4F, 11.2F, 65.7F, 38.0F, 71.3F, 49.54F, 83.7F, 13.9F, 56.12F, 27.43F, 23.1F, 31.0F, 75.4F, 9.3F, 39.12F, 10.0F, 44.23F, 21.76F, 49.2F }; float[] lowValues = new float[20] { 12.1F, 14.32F, 8.43F, 36.0F, 13.5F, 47.34F, 24.54F, 68.11F, 6.87F, 23.3F, 12.12F, 14.54F, 25.0F, 37.2F, 3.9F, 23.11F, 1.9F, 14.0F, 8.23F, 34.21F }; // setup Point & Figure series m_PointAndFigure = new NPointAndFigureSeries(); m_PointAndFigure.UseXValues = true; chart.Series.Add(m_PointAndFigure); DateTime dt = DateTime.Now; // fill data int count = highValues.Length; for (int i = 0; i < count; i++) { m_PointAndFigure.DataPoints.Add(new NPointAndFigureDataPoint(NDateTimeHelpers.ToOADate(dt), highValues[i], lowValues[i])); dt = dt.AddDays(1); } chartView.Document.StyleSheets.ApplyTheme(new NChartTheme(ENChartPalette.Bright, false)); return(chartView); }