如何从0 X轴开始制作折线图

我创建了一个折线图,但我希望在X轴上显示从0开始的图表。 我怎样才能做到这一点。

我尝试了一些方法,但仍然没有得到我想要的。

Chart1.ChartAreas[0].AxisX.Interval = 0; Chart1.ChartAreas[0].AxisX.IsStartedFromZero = true; Chart1.ChartAreas[0].AxisX.Minimum = 0; Chart1.ChartAreas[0].AxisX.Crossing = 0; 

这就是我现在所做的

在此处输入图像描述

这就是我要的

在此处输入图像描述

还有一个,如何在图表中设置主要和次要单位..?

我的代码在这里

 protected void Page_Load(object sender, EventArgs e) { System.Drawing.Font axisFont = new System.Drawing.Font("Arial", 8, System.Drawing.FontStyle.Bold); System.Drawing.Font titleFont = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Bold); Chart1.Width = 600; Chart1.Height = 400; Chart1.BorderlineColor = System.Drawing.Color.Black; Chart1.BorderlineWidth = 1; Chart1.BorderlineDashStyle = ChartDashStyle.Solid; double[] min = { 60.9, 0, 28.81, 7.27 }; double[] ave = { 60.9, 0, 28.81, 7.27 }; double[] max = { 5167.72, 1.27, 4176.16, 2566.59 }; Chart1.Series["Series1"].ChartArea = "ChartArea1"; Chart1.Series["Series2"].ChartArea = "ChartArea1"; Chart1.Series["Series3"].ChartArea = "ChartArea1"; Chart1.Series["Series1"].Points.AddXY("Step 1-2", max[0]); Chart1.Series["Series2"].Points.AddXY("Step 1-2", ave[0]); Chart1.Series["Series3"].Points.AddXY("Step 1-2", min[0]); Chart1.Series["Series1"].Points.AddXY("Step 2-3", max[1]); Chart1.Series["Series2"].Points.AddXY("Step 2-3", ave[1]); Chart1.Series["Series3"].Points.AddXY("Step 2-3", min[1]); Chart1.Series["Series1"].Points.AddXY("Step 3-4", max[2]); Chart1.Series["Series2"].Points.AddXY("Step 3-4", ave[2]); Chart1.Series["Series3"].Points.AddXY("Step 3-4", min[2]); Chart1.Series["Series1"].Points.AddXY("Step 4-5", max[3]); Chart1.Series["Series2"].Points.AddXY("Step 4-5", ave[3]); Chart1.Series["Series3"].Points.AddXY("Step 4-5", min[3]); String hour1 = "hh"; Chart1.Titles.Add("Cycle Time : "+hour1); Chart1.Titles[0].Font = titleFont; Chart1.Series["Series1"].MarkerStyle = System.Web.UI.DataVisualization.Charting.MarkerStyle.Triangle; Chart1.Series["Series2"].MarkerStyle = System.Web.UI.DataVisualization.Charting.MarkerStyle.Square; Chart1.Series["Series3"].MarkerStyle = System.Web.UI.DataVisualization.Charting.MarkerStyle.Diamond; Chart1.Series["Series1"].MarkerSize = 15; Chart1.Series["Series2"].MarkerSize = 15; Chart1.Series["Series3"].MarkerSize = 15; Chart1.Legends.Add("Legend1"); Chart1.Series["Series1"].LegendText = "Max"; Chart1.Series["Series2"].LegendText = "Ave"; Chart1.Series["Series3"].LegendText = "Min"; Chart1.Series["Series1"].Legend = "Legend1"; Chart1.Series["Series2"].Legend = "Legend1"; Chart1.Series["Series3"].Legend = "Legend1"; Chart1.Series["Series1"].IsVisibleInLegend = true; Chart1.Series["Series2"].IsVisibleInLegend = true; Chart1.Series["Series3"].IsVisibleInLegend = true; //This part I try to make the graph start from 0 in X-axis but not work //Chart1.ChartAreas[0].AxisX.Interval = 0; //Chart1.ChartAreas[0].AxisX.IsStartedFromZero = true; //Chart1.ChartAreas[0].AxisX.Minimum = 0; //Chart1.ChartAreas[0].AxisX.Crossing = 0; //Chart1.ChartAreas[0].AxisX.Minimum = 0; //Chart1.ChartAreas[0].Position.Auto = false; Chart1.ChartAreas[0].AxisX.TitleFont = axisFont; Chart1.ChartAreas[0].AxisY.TitleFont = axisFont; Chart1.ChartAreas[0].AxisX.Title = "Step"; Chart1.ChartAreas[0].AxisY.Title = "Time (" + hour1 + ")"; Chart1.ChartAreas[0].BackColor = System.Drawing.Color.AliceBlue; Chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false; Chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = System.Drawing.ColorTranslator.FromHtml("#D5E8F5"); } 

我有一个类似的问题,发现解决方案是将IsMarginVisible标志设置为false:

 chart1.ChartAreas[0].AxisX.IsMarginVisible = false; 

希望这可以帮助。

Chart控件由他自己决定从哪里开始Axes,更重要的是在哪里结束它们,因为它可能在显示点时产生问题。

假设您在(-1,0)中有一个点,如果您决定从0开始X轴,图表控件应该做什么? 显示从未知开始的系列? 删除点?

在您的图表中,每个点都有2个值,X轴的字符串值和Y轴的双精度值。

字符串按字母顺序存储在图表中,它还会检查某些字符串是否等于(因此您没有3 *步骤1-3 * s)。

它还给字符串一个位置值,显然从0开始。

但是什么是0位置值字符串?

答:可能没有0位置值字符串。

事实上,如果你尝试类似的东西

  Chart1.Series["Series1"].Points.AddXY(string.Empty, 1.0); Chart1.Series["Series2"].Points.AddXY(string.Empty, 2.0); Chart1.Series["Series3"].Points.AddXY(string.Empty, 3.0); 

图表控件将自动为名为1的空字符串添加标签,显示位置值。

在图表中设置主要和次要单位的唯一方法是在图表中添加或删除数据。

另一种解决方法可能是:

 Chart1.Series["SeriesMin"].Points.AddXY(0, max[0]); Chart1.Series["SeriesAve"].Points.AddXY(0, ave[0]); Chart1.Series["SeriesMax"].Points.AddXY(0, min[0]); Chart1.Series["SeriesMin"].Points[0].AxisLabel = "Step 1-2"; Chart1.Series["SeriesAve"].Points[0].AxisLabel = "Step 1-2"; Chart1.Series["SeriesMax"].Points[0].AxisLabel = "Step 1-2"; 

然后你可以添加所有到目前为止没有工作的代码

 Chart1.ChartAreas[0].AxisX.Interval = 0; Chart1.ChartAreas[0].AxisX.IsStartedFromZero = true; Chart1.ChartAreas[0].AxisX.Minimum = 0; Chart1.ChartAreas[0].AxisX.Crossing = 0; Chart1.ChartAreas[0].AxisX.Minimum = 0; //Chart1.ChartAreas[0].Position.Auto = false; //EXCEPT THIS ONE!! 

像魅力一样工作 ,如果你不得不添加更多来自数据库的数据,那将非常无聊。