/// <summary> /// Constructor /// </summary> /// <param name="l1">Vertical line to provide bounds for filled region</param> /// <param name="l2">The other Vertical line to provide bounds for filled region</param> public FilledRegion(VerticalLine l1, VerticalLine l2) { vl1_ = l1; vl2_ = l2; }
public void InitDataToChart() { //清空 chart1.Clear(); chart2.Clear(); chart3.Clear(); //垂直线 vline = new VerticalLine(0, Color.Blue); //图例 legend = new Legend(); legend.AttachTo(PlotSurface2D.XAxisPosition.Top, PlotSurface2D.YAxisPosition.Left); legend.VerticalEdgePlacement = Legend.Placement.Inside; legend.HorizontalEdgePlacement = Legend.Placement.Outside; legend.YOffset = -5; legend.BorderStyle = LegendBase.BorderType.Line; legend.NumberItemsHorizontally = 4; //网格 grid = new Grid(); grid.HorizontalGridType = Grid.GridType.Fine; grid.VerticalGridType = Grid.GridType.Fine; grid.MajorGridPen.Color = Color.Silver; grid.MinorGridPen.Color = Color.Silver; /////区域着色//////// fill = new FilledRegion(new VerticalLine(-1), new VerticalLine(8)); fill.Brush = new SolidBrush(Color.FromArgb(250, 218, 169)); ///////////////////////////////////////////// //直线图 sysPlot = new LinePlot(); sysPlot.OrdinateData = sysList; sysPlot.AbscissaData = timeList; sysPlot.Color = Color.RoyalBlue; sysPlot.Pen.Width = 2.0f; sysPlot.Label = "SYS"; diaPlot = new LinePlot(); diaPlot.OrdinateData = diaList; diaPlot.AbscissaData = timeList; diaPlot.Color = Color.OrangeRed; diaPlot.Pen.Width = 2.0f; diaPlot.Label = "DIA"; mapPlot = new LinePlot(); mapPlot.OrdinateData = mapList; mapPlot.AbscissaData = timeList; mapPlot.Color = Color.Chartreuse; mapPlot.Pen.Width = 2.0f; mapPlot.Label = "MAP"; hrPlot = new LinePlot(); hrPlot.OrdinateData = hrList; hrPlot.AbscissaData = timeList; hrPlot.Color = Color.DarkSlateBlue; hrPlot.Pen.Width = 2.0f; sys_hrPlot = new LinePlot(); sys_hrPlot.OrdinateData = sys_hrList; sys_hrPlot.AbscissaData = timeList; sys_hrPlot.Color = Color.Green; sys_hrPlot.Pen.Width = 2.0f; //水平线 hline1 = new HorizontalLine(70, Color.Gray); hline2 = new HorizontalLine(90, Color.Gray); hline3 = new HorizontalLine(120, Color.Gray); hline4 = new HorizontalLine(140, Color.Gray); /////////////////////// chart1.Add(fill); chart1.Add(grid); chart1.Add(sysPlot); chart1.Add(diaPlot); chart1.Add(mapPlot); chart1.Add(hline1); chart1.Add(hline2); chart1.Add(hline3); chart1.Add(hline4); chart1.Add(vline); chart1.XAxis1.HideTickText = true; chart1.YAxis1.Label = "血压:mmHg"; chart1.YAxis1.LabelOffsetAbsolute = true; chart1.YAxis1.WorldMin = chart1.YAxis1.WorldMin - 20; chart1.YAxis1.WorldMax = chart1.YAxis1.WorldMax + 20; chart1.Padding = 5; chart1.AddInteraction(new xuzhenzhen.com.chart.Windows.PlotSurface2D.Interactions.HorizontalDrag()); chart1.AddInteraction(new xuzhenzhen.com.chart.Windows.PlotSurface2D.Interactions.VerticalDrag()); chart1.AddInteraction(new xuzhenzhen.com.chart.Windows.PlotSurface2D.Interactions.VerticalGuideline()); chart1.AddAxesConstraint(new AxesConstraint.AxisPosition(PlotSurface2D.YAxisPosition.Left, 60)); chart1.InteractionOccured += new xuzhenzhen.com.chart.Windows.PlotSurface2D.InteractionHandler(chart1_InteractionOccured); chart1.PlotBackColor = Color.White; chart1.BackColor = System.Drawing.SystemColors.Control; chart1.XAxis1.Color = Color.Black; chart1.YAxis1.Color = Color.Black; chart1.Legend = legend; chart1.LegendZOrder = 1; chart1.Refresh(); /////////////////////////// chart2.Add(fill); chart2.Add(grid); chart2.Add(hrPlot); chart2.Add(vline); chart2.XAxis1.HideTickText = true; chart2.YAxis1.Label = "心率:BPM"; chart2.YAxis1.LabelOffsetAbsolute = true; chart2.Padding = 5; chart2.AddAxesConstraint(new AxesConstraint.AxisPosition(PlotSurface2D.YAxisPosition.Left, 60)); chart2.AddInteraction(new xuzhenzhen.com.chart.Windows.PlotSurface2D.Interactions.HorizontalDrag()); chart2.AddInteraction(new xuzhenzhen.com.chart.Windows.PlotSurface2D.Interactions.VerticalDrag()); chart2.AddInteraction(new xuzhenzhen.com.chart.Windows.PlotSurface2D.Interactions.VerticalGuideline()); chart2.InteractionOccured += new xuzhenzhen.com.chart.Windows.PlotSurface2D.InteractionHandler(chart2_InteractionOccured); chart2.PlotBackColor = Color.White; chart2.BackColor = System.Drawing.SystemColors.Control; chart2.XAxis1.Color = Color.Black; chart2.YAxis1.Color = Color.Black; chart2.Refresh(); /////////////////////////// chart3.Add(fill); chart3.Add(grid); chart3.Add(sys_hrPlot); chart3.Add(vline); LabelAxis axis = new LabelAxis(chart3.XAxis1); int tick = 1; if (chart2.XAxis1.WorldMax - chart2.XAxis1.WorldMin > 30) tick = 2; for (int i = (int)chart2.XAxis1.WorldMin; i <= chart2.XAxis1.WorldMax; i+=tick) { int j = i % 24; if (j < 0) j += 24; axis.AddLabel(Convert.ToString(j), i); } chart3.XAxis1 = axis; chart3.XAxis1.Label = "Time:Hour"; chart3.YAxis1.Label = "SYS*PR/100"; chart3.YAxis1.LabelOffsetAbsolute = true; chart3.Padding = 5; chart3.AddAxesConstraint(new AxesConstraint.AxisPosition(PlotSurface2D.YAxisPosition.Left, 60)); chart3.AddInteraction(new xuzhenzhen.com.chart.Windows.PlotSurface2D.Interactions.HorizontalDrag()); chart3.AddInteraction(new xuzhenzhen.com.chart.Windows.PlotSurface2D.Interactions.VerticalDrag()); chart3.AddInteraction(new xuzhenzhen.com.chart.Windows.PlotSurface2D.Interactions.VerticalGuideline()); chart3.InteractionOccured += new xuzhenzhen.com.chart.Windows.PlotSurface2D.InteractionHandler(chart3_InteractionOccured); chart3.PlotBackColor = Color.White; chart3.BackColor = System.Drawing.SystemColors.Control; chart3.XAxis1.Color = Color.Black; chart3.YAxis1.Color = Color.Black; chart3.Refresh(); SetStatusNow(); }
public void PlotCandleSimple() { string lines = "Simple CandlePlot example. Demonstrates - * Setting candle plot datapoints using arrays."; infoBox.Text = lines; plotSurface.Clear(); FilledRegion fr = new FilledRegion( new VerticalLine(1.2), new VerticalLine(2.4)); fr.Brush = new SolidBrush(Color.BlanchedAlmond); plotSurface.Add(fr); // note that arrays can be of any type you like. int[] opens = { 1, 2, 1, 2, 1, 3 }; double[] closes = { 2, 2, 2, 1, 2, 1 }; float[] lows = { 0, 1, 1, 1, 0, 0 }; System.Int64[] highs = { 3, 2, 3, 3, 3, 4 }; int[] times = { 0, 1, 2, 3, 4, 5 }; CandlePlot cp = new CandlePlot(); cp.CloseData = closes; cp.OpenData = opens; cp.LowData = lows; cp.HighData = highs; cp.AbscissaData = times; plotSurface.Add(cp); HorizontalLine line = new HorizontalLine( 1.2 ); line.LengthScale = 0.89f; plotSurface.Add( line, -10 ); VerticalLine line2 = new VerticalLine( 1.2 ); line2.LengthScale = 0.89f; plotSurface.Add( line2 ); plotSurface.AddInteraction( new xuzhenzhen.com.chart.Windows.PlotSurface2D.Interactions.MouseWheelZoom() ); plotSurface.Title = "Line in the Title Number 1\nFollowed by another title line\n and another"; plotSurface.XAxis1.LabelOffset = 0; plotSurface.YAxis1.LabelOffset = 0; plotSurface.Refresh(); }