public static void Chart_Curve(Chart ChartName, string TitleName, string XAxisName, string YAxisName, string SelectMode, string[] XAxisData, double[] YAxisData, double XAxisLabAgle, double MaxValue, double MinValue, bool IsDisplayLine) { Frm_RunInfo FrmRunInfo = new Frm_RunInfo(); long i = 0; long Temp = 0; DataTable dt = new DataTable(); dt.Columns.Add("X轴"); dt.Columns.Add("Y轴"); DataRow dr = default(DataRow); if (ChartName.Name == "Chart_HOUSING") { if (IniGetNValue(PVar.UIChartCurveName, "CurveData", "TotalNum", 0) == 49) { Temp = 49; } else { Temp = (long)(IniGetNValue(PVar.UIChartCurveName, "CurveData", "CurrentNum", 0)); } if (Temp > 0) { for (i = 0; i <= Temp; i++) { dr = dt.NewRow(); dr[0] = (i + 1).ToString(); //X轴 dr[1] = YAxisData[i]; //Y轴 dt.Rows.Add(dr); } dr = null; } } else { if (ChartName.Name == "Chart_YieldOverview") { Temp = FrmRunInfo.TrackBar_yeild.Value; } if (ChartName.Name == "Chart_Tossing") { Temp = FrmRunInfo.TrackBar_tossing.Value; } if (ChartName.Name == "Chart_UPH") { Temp = FrmRunInfo.TrackBar_uph.Value; } for (i = 0; i <= Temp - 1; i++) { dr = dt.NewRow(); dr[0] = XAxisData[i]; //X轴 dr[1] = YAxisData[i]; //Y轴 dt.Rows.Add(dr); } dr = null; } Chart with_1 = ChartName; ChartName.DataSource = dt; //dt作为chart的数据源 ChartName.Series.Clear(); ChartName.Legends.Clear(); ChartName.ChartAreas.Clear(); ChartName.Titles.Clear(); ChartName.Titles.Add(TitleName); ChartName.ChartAreas.Add("Y轴"); ChartName.Series.Add("Y轴"); ChartName.Series.Add("X轴"); ChartName.Series["Y轴"].LegendToolTip = "Y轴图例"; ChartName.ChartAreas["Y轴"].AxisX.Title = XAxisName; //添加AxisX Titles ChartName.ChartAreas["Y轴"].AxisY.Title = YAxisName; //添加AxisY Titles if (ChartName.Name != "Chart_HOUSING") { ChartName.Series["Y轴"].IsValueShownAsLabel = true; //标签显示数据值 } ChartName.ChartAreas["Y轴"].Area3DStyle.Enable3D = false; //启用3D样式 ChartName.BackSecondaryColor = System.Drawing.Color.Yellow; //设置背景的辅助颜色 ChartName.BorderlineColor = System.Drawing.Color.Yellow; //设置图像边框的颜色 ChartName.BorderlineWidth = 1; //设置图像的边框宽度 ChartName.ChartAreas["Y轴"].AxisX.LineColor = System.Drawing.Color.LightGray; //设置轴的线条颜色 ChartName.ChartAreas["Y轴"].AxisY.LineColor = System.Drawing.Color.LightGray; //设置轴的线条颜色 ChartName.ChartAreas["Y轴"].AxisX.MajorGrid.LineColor = System.Drawing.Color.LightGray; //设置网格线颜色 ChartName.ChartAreas["Y轴"].AxisY.MajorGrid.LineColor = System.Drawing.Color.LightGray; //设置网格线颜色 ChartName.ChartAreas["Y轴"].AxisY.IsLabelAutoFit = true; //设置是否自动调整轴标签 ChartName.ChartAreas["Y轴"].BackColor = Color.FromArgb(255, 255, 255); ChartName.BackColor = Color.FromArgb(238, 238, 238); if (ChartName.Name == "Chart_HOUSING") { ChartName.ChartAreas["Y轴"].AxisX.MajorGrid.Interval = 1; //设置X轴间隔距离 ChartName.ChartAreas["Y轴"].AxisY.IsStartedFromZero = false; //设置是否自动将数据值均为正值时轴的最小值设置为0,存在负数据值时,将使用数据轴最小值 } else { ChartName.ChartAreas["Y轴"].AxisX.MajorGrid.Interval = 1; //设置X轴间隔距离 } ChartName.ChartAreas["Y轴"].AxisX.MajorTickMark.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number; ////设置刻度线的间隔的度量单位 ChartName.ChartAreas["Y轴"].AxisY.MajorTickMark.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number; ////设置刻度线的间隔的度量单位 ChartName.ChartAreas["Y轴"].AxisY.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; ChartName.ChartAreas["Y轴"].AxisX.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; ChartName.ChartAreas["Y轴"].AxisX.MajorTickMark.Interval = 1; if (ChartName.Name == "Chart_HOUSING") { ChartName.ChartAreas["Y轴"].AxisY.MajorTickMark.Interval = 0.01; //设置刻度线的间隔 ChartName.ChartAreas["Y轴"].AxisY.Maximum = double.Parse(Strings.Format(MaxValue, "0.00")) + 0.1; ChartName.ChartAreas["Y轴"].AxisY.Minimum = double.Parse(Strings.Format(MinValue, "0.00")) - 0.1; } else { ChartName.ChartAreas["Y轴"].AxisY.MajorTickMark.Interval = 1; //设置刻度线的间隔 } ChartName.ChartAreas["Y轴"].AxisX.LabelStyle.Angle = (int)XAxisLabAgle; //X轴标题倾斜角度 ChartName.Series[0].YValueMembers = "Y轴"; ChartName.Series[0].XValueMember = "X轴"; if (ChartName.Name == "Chart_HOUSING") { ChartName.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; } else if (ChartName.Name == "Chart_UPH") { ChartName.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column; } else { ChartName.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; } ChartName.Series[0].Color = Color.Blue; if (ChartName.Name != "Chart_UPH") { ChartName.Series[1].YValueMembers = "Y轴"; ChartName.Series[1].XValueMember = "X轴"; ChartName.Series[1].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; ChartName.Series[1].Color = Color.Gold; } if (IsDisplayLine) { System.Windows.Forms.DataVisualization.Charting.StripLine S1 = default(System.Windows.Forms.DataVisualization.Charting.StripLine); System.Windows.Forms.DataVisualization.Charting.StripLine S2 = default(System.Windows.Forms.DataVisualization.Charting.StripLine); System.Windows.Forms.DataVisualization.Charting.StripLine S3 = new System.Windows.Forms.DataVisualization.Charting.StripLine(); S1.BorderColor = Color.Red; S1.IntervalOffset = double.Parse(Strings.Format(MinValue, "0.00")); S2.BorderColor = Color.Red; S2.IntervalOffset = double.Parse(Strings.Format(MaxValue, "0.00")); S3.BorderColor = Color.Green; S3.IntervalOffset = double.Parse(Strings.Format((MaxValue + MinValue) / 2, "0.00")); ChartName.ChartAreas["Y轴"].AxisY.StripLines.Add(S1); ChartName.ChartAreas["Y轴"].AxisY.StripLines.Add(S2); ChartName.ChartAreas["Y轴"].AxisY.StripLines.Add(S3); } ChartName.DataBind(); }
public Frm_RunInfo() { InitializeComponent(); fRunInfo = this; }