public Axis(GraphPane pane) { mPane = pane; mMaximum = 0; mMinimum = 0; mScale = 1.0f; mTitle = new AxisTitle(); mLabels = new AxisLabels(); mMajorMark = new AxisMark(15.0f); mMinorMark = new AxisMark(6.0f); mAxisType = AxisType.Linear; mPen = SystemPens.ControlText; }
/// <summary> /// Creates a bar plot at the given position /// </summary> /// <param name="data">The data to plot</param> /// <param name="pos">The position of the plot</param> private Bar CreateBarPlot(DataTable data, int pos) { int margin = 5 * pos; int start = 30 * pos + margin; int end = start + 30; var title = new AxisTitle() { Text = data.TableName + "\n" + data.ExtendedProperties["Subname"].ToString(), Angle = 90 }; title.Font.Size = 8; int increment = 1; var ys = data.Rows.Cast <DataRow>().Select(r => r.Field <double>("Value")); if (ys.Any()) { increment = Convert.ToInt32(Math.Floor(ys.Max() / 30)) * 10; } var pen = new ChartPen(chart) { Visible = true, Width = 2, Color = Color.Black }; var y = new Axis(chart) { Title = title, StartPosition = start, EndPosition = end, MinorTickCount = 1, Increment = increment, AxisPen = pen }; y.MinorGrid.Visible = true; y.MinorGrid.Color = Color.LightGray; var b = new Axis(chart) { AxisPen = pen, Horizontal = true, Visible = true, RelativePosition = start }; chart.Axes.Custom.Add(y); chart.Axes.Custom.Add(b); // Data Bar bar = new() { CustomBarWidth = 4, CustomVertAxis = y, Title = data.TableName }; bar.Marks.Visible = false; foreach (DataRow row in data.Rows) { bar.Add(row.Field <DateTime>("Date"), row.Field <double>("Value")); } // X-Axis bar.XValues.DateTime = true; // Legend bar.Legend.Visible = false; return(bar); } }
internal void CommonFunctionality(SimpleDataset3D[] arrSimpleDS) { int iCount = 0; Background objCBGND = null; ChartAttribute objWallAttribute = null; Wall3D objxyMinZWall = null; Wall3D objyzMinXWall = null; Wall3D objxzMinYWall = null; LinearAxis xAxis = null; LinearAxis yAxis = null; AxisTitle objXAxisTitle = null; AxisTitle objYAxisTitle = null; NumericAxisLabels XAxisLabel = null; NumericAxisLabels YAxisLabel = null; Grid xGrid = null; Grid yGrid = null; ChartAttribute objAttribute = null; try { iCount = arrSimpleDS.Length; m_objChartView = m_obj3DGraphControl; if (m_obj3DGraphControl != null) { m_objChartView = m_obj3DGraphControl; } string[] sarrLabels = m_sUnits.Split(new char[] { ',' }); m_objFont = new Font("Microsoft Sans Serif", 5, FontStyle.Regular); m_objCartesianCordinates = new CartesianCoordinates(); m_objCartesianCordinates.AutoScale(arrSimpleDS, ChartObj.AUTOAXES_EXACT, ChartObj.AUTOAXES_EXACT); m_objCartesianCordinates.AbsRotateCoordinateSystem(new Point3D(5, 3, 0)); m_objChartView.SetFractionalZViewportDepth(4); objCBGND = new Background(m_objCartesianCordinates, ChartObj.GRAPH_BACKGROUND, Color.FromArgb(241, 241, 247)); m_objChartView.AddChartObject(objCBGND); objWallAttribute = new ChartAttribute(Color.Beige, 0.5, DashStyle.Solid, Color.LightGray); objxyMinZWall = new Wall3D(m_objCartesianCordinates, ChartObj.XY_MAXZ_PLANE, 0, objWallAttribute); m_objChartView.AddChartObject(objxyMinZWall); objyzMinXWall = new Wall3D(m_objCartesianCordinates, ChartObj.YZ_MINX_PLANE, 0, objWallAttribute); m_objChartView.AddChartObject(objyzMinXWall); objxzMinYWall = new Wall3D(m_objCartesianCordinates, ChartObj.XZ_MINY_PLANE, 0, objWallAttribute); m_objChartView.AddChartObject(objxzMinYWall); m_objCartesianCordinates.SetGraphBorderDiagonal(0.15, .15, .90, 0.75); xAxis = new LinearAxis(m_objCartesianCordinates, ChartObj.X_AXIS); xAxis.CalcAutoAxis(); m_objChartView.AddChartObject(xAxis); XAxisLabel = new NumericAxisLabels(xAxis); XAxisLabel.SetTextFont(m_objFont); m_objChartView.AddChartObject(XAxisLabel); switch (m_sTimeAxis) { case "Sec": objXAxisTitle = new AxisTitle(xAxis, m_objFont, "Sec"); m_objChartView.AddChartObject(objXAxisTitle); break; case "Others": objXAxisTitle = new AxisTitle(xAxis, m_objFont, sarrLabels[0]); m_objChartView.AddChartObject(objXAxisTitle); break; } yAxis = new LinearAxis(m_objCartesianCordinates, ChartObj.Y_AXIS); yAxis.CalcAutoAxis(); m_objChartView.AddChartObject(yAxis); YAxisLabel = new NumericAxisLabels(yAxis); YAxisLabel.SetTextFont(m_objFont); m_objChartView.AddChartObject(YAxisLabel); objYAxisTitle = new AxisTitle(yAxis, m_objFont, sarrLabels[1]); m_objChartView.AddChartObject(objYAxisTitle); switch (iCount) { case 1: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFirstText); break; case 2: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objNewFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[1], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], 0.002, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objNewFirstText); objAttribute = new ChartAttribute(Color.DarkGreen, 0.5, DashStyle.Solid); m_objSecondLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[1], objAttribute); m_objChartView.AddChartObject(m_objSecondLinePlot); ChartText objSecondText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objSecondLinePlot.DisplayDataset.XData[m_objSecondLinePlot.DisplayDataset.XData.Length - 60], m_objSecondLinePlot.DisplayDataset.YData[m_objSecondLinePlot.DisplayDataset.YData.Length - 60], 0, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objSecondText); break; case 3: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objThirdFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[2], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], 0.0045, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objThirdFirstText); objAttribute = new ChartAttribute(Color.DarkGreen, 0.5, DashStyle.Solid); m_objSecondLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[1], objAttribute); m_objChartView.AddChartObject(m_objSecondLinePlot); ChartText objThirdSecondText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[1], m_objSecondLinePlot.DisplayDataset.XData[m_objSecondLinePlot.DisplayDataset.XData.Length - 60], m_objSecondLinePlot.DisplayDataset.YData[m_objSecondLinePlot.DisplayDataset.YData.Length - 60], 0.0025, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objThirdSecondText); objAttribute = new ChartAttribute(Color.DarkGoldenrod, 0.5, DashStyle.Solid); m_objThirdLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[2], objAttribute); m_objChartView.AddChartObject(m_objThirdLinePlot); ChartText objThirdThirdText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objThirdLinePlot.DisplayDataset.XData[m_objThirdLinePlot.DisplayDataset.XData.Length - 60], m_objThirdLinePlot.DisplayDataset.YData[m_objThirdLinePlot.DisplayDataset.YData.Length - 60], 0, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objThirdThirdText); break; case 4: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objFourthFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[3], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], 0.0075, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthFirstText); objAttribute = new ChartAttribute(Color.DarkGreen, 0.5, DashStyle.Solid); m_objSecondLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[1], objAttribute); m_objChartView.AddChartObject(m_objSecondLinePlot); ChartText objFourthSecondText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[2], m_objSecondLinePlot.DisplayDataset.XData[m_objSecondLinePlot.DisplayDataset.XData.Length - 60], m_objSecondLinePlot.DisplayDataset.YData[m_objSecondLinePlot.DisplayDataset.YData.Length - 60], 0.0045, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthSecondText); objAttribute = new ChartAttribute(Color.DarkGoldenrod, 0.5, DashStyle.Solid); m_objThirdLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[2], objAttribute); m_objChartView.AddChartObject(m_objThirdLinePlot); ChartText objFourthThirdText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[1], m_objThirdLinePlot.DisplayDataset.XData[m_objThirdLinePlot.DisplayDataset.XData.Length - 60], m_objThirdLinePlot.DisplayDataset.YData[m_objThirdLinePlot.DisplayDataset.YData.Length - 60], 0.002, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthThirdText); objAttribute = new ChartAttribute(Color.DarkViolet, 0.5, DashStyle.Solid); m_objFourthLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[3], objAttribute); m_objChartView.AddChartObject(m_objFourthLinePlot); ChartText objFourthFourthText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objFourthLinePlot.DisplayDataset.XData[m_objFourthLinePlot.DisplayDataset.XData.Length - 60], m_objFourthLinePlot.DisplayDataset.YData[m_objFourthLinePlot.DisplayDataset.YData.Length - 60], 0, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthFourthText); break; } } catch { throw; } }
internal AxisTitleConfigurator(AxisTitle title) { this.title = title; }