使用c#在MSChart中显示serie的特定方法
发布时间:2020-12-15 17:18:57 所属栏目:百科 来源:网络整理
导读:我想知道是否有任何方法可以显示这个系列如下,图表类型是列. 我知道我需要一个(X,Y)对来显示图中的数据点,但问题是我需要在x的范围内显示Y值,为了澄清这一点,让我们举一个例子: X轴显示小时和Y轴产量值,在这种情况下,生产从7:30开始,所以从7:30到8,产量比如
我想知道是否有任何方法可以显示这个系列如下,图表类型是列.
我知道我需要一个(X,Y)对来显示图中的数据点,但问题是我需要在x的范围内显示Y值,为了澄清这一点,让我们举一个例子: X轴显示小时和Y轴产量值,在这种情况下,生产从7:30开始,所以从7:30到8,产量比如20个单位;从8-9,660个单位; 9-10,45个单位和10-10:35 18个单位. 我可以用MSChart,或者你们建议我的任何其他人来实现这一目标吗?这是一个winform应用程序. 谢谢 解决方法
您应该查看
MS Chart site.“下载”选项卡包含WinForms示例,您可以将其作为WinForms项目下载,在Visual Studio中运行,并查看所需图表的代码.图表控件包含在.Net 4中,但可??以下载并添加为.Net 3.5的参考.
你想要的是柱形图.您可以在图表上将值设置为系列,然后可以选择列的宽度以显示所需的x值范围. 基本思想是创建Chart,ChartArea和Series,以及可选的Title和Legend. 您将一个或多个Series对象添加到ChartArea,然后将ChartArea,Title和Legend添加到图表中. 您可以单独向系列添加DataPoints,如下例所示,或者将Chart.DataSource设置为类似于DataTable的类并使用DataBinding. 这是柱形图示例中的一个片段: System.Windows.Forms.DataVisualization.Charting.Chart chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint1 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(36890,32); System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint2 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(36891,56); System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint3 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(36892,35); System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint4 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(36893,12); System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint5 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(36894,35); System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint6 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(36895,6); System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint7 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(36896,23); System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title1 = new System.Windows.Forms.DataVisualization.Charting.Title(); chart1.BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.TopBottom; chart1.BorderlineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid; chart1.BorderlineWidth = 2; chart1.BorderSkin.SkinStyle = System.Windows.Forms.DataVisualization.Charting.BorderSkinStyle.Emboss; chartArea1.Area3DStyle.Inclination = 15; chartArea1.Area3DStyle.IsClustered = true; chartArea1.Area3DStyle.IsRightAngleAxes = false; chartArea1.Area3DStyle.Perspective = 10; chartArea1.Area3DStyle.Rotation = 10; chartArea1.Area3DStyle.WallWidth = 0; chartArea1.AxisX.LabelAutoFitMaxFontSize = 8; chartArea1.AxisX.LabelStyle.Font = new System.Drawing.Font("Trebuchet MS",8.25F,System.Drawing.FontStyle.Bold); chartArea1.AxisX.LabelStyle.Format = "MM-dd"; chartArea1.AxisX.LabelStyle.IsEndLabelVisible = false; chartArea1.AxisX.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))),((int)(((byte)(64)))),((int)(((byte)(64))))); chartArea1.AxisX.MajorGrid.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))),((int)(((byte)(64))))); chartArea1.AxisY.LabelAutoFitMaxFontSize = 8; chartArea1.AxisY.LabelStyle.Font = new System.Drawing.Font("Trebuchet MS",System.Drawing.FontStyle.Bold); chartArea1.AxisY.LabelStyle.Format = "C0"; chartArea1.AxisY.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))),((int)(((byte)(64))))); chartArea1.AxisY.MajorGrid.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))),((int)(((byte)(64))))); chartArea1.BackColor = System.Drawing.Color.OldLace; chartArea1.BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.TopBottom; chartArea1.BackSecondaryColor = System.Drawing.Color.White; chartArea1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))),((int)(((byte)(64))))); chartArea1.Name = "Default"; chartArea1.ShadowColor = System.Drawing.Color.Transparent; chart1.ChartAreas.Add(chartArea1); legend1.BackColor = System.Drawing.Color.Transparent; legend1.Enabled = false; legend1.Font = new System.Drawing.Font("Trebuchet MS",System.Drawing.FontStyle.Bold); legend1.IsTextAutoFit = false; legend1.Name = "Default"; chart1.Legends.Add(legend1); chart1.Location = new System.Drawing.Point(16,64); chart1.Name = "chart1"; series1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))),((int)(((byte)(26)))),((int)(((byte)(59)))),((int)(((byte)(105))))); series1.ChartArea = "Default"; series1.Legend = "Default"; series1.Name = "Series1"; series1.Points.Add(dataPoint1); series1.Points.Add(dataPoint2); series1.Points.Add(dataPoint3); series1.Points.Add(dataPoint4); series1.Points.Add(dataPoint5); series1.Points.Add(dataPoint6); series1.Points.Add(dataPoint7); series1.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.DateTime; chart1.Series.Add(series1); chart1.Size = new System.Drawing.Size(412,296); chart1.TabIndex = 0; title1.Font = new System.Drawing.Font("Trebuchet MS",14.25F,System.Drawing.FontStyle.Bold); title1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(26)))),((int)(((byte)(105))))); title1.Name = "Title1"; title1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))),((int)(((byte)(0)))),((int)(((byte)(0))))); title1.ShadowOffset = 3; title1.Text = "Column Chart"; chart1.Titles.Add(title1); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |