Cómo hacer que el gráfico de líneas comience desde 0 X-Axis

Creo un gráfico de líneas, pero quiero mostrar que el gráfico comience desde 0 en el eje X. Cómo puedo hacer esto.

Intento algún método pero aún no consigo lo que quiero.

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

Esto es lo que hago ahora

introduzca la descripción de la imagen aquí

Esto es lo que quiero

introduzca la descripción de la imagen aquí

Y una más, ¿cómo puedo establecer unidades mayores y menores en la tabla?

mi código aquí

 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"); } 

Tuve un problema similar y encontré que la solución era establecer el indicador IsMarginVisible en falso:

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

Espero que esto ayude.

El control de la carta decide por su cuenta dónde iniciar los ejes y, lo que es más importante, dónde terminarlos, ya que podría crear problemas al mostrar los puntos.

Diga que tiene un punto en (-1,0), si decide iniciar el eje X desde 0, ¿qué debe hacer el control de gráfico? ¿Desea mostrar la serie a partir de desconocido? ¿Borrar el punto?

En su gráfico, cada punto tiene 2 valores, un valor de cadena para el Eje X y un doble para el Eje Y.

Las cadenas se almacenan en el gráfico en orden alfabético, y también verifica si algunas son iguales o no (por lo que no tiene 3 * Paso 1-3 * s).

También le da a las cadenas un valor de posición, comenzando obviamente desde 0.

Pero, ¿cuál es la cadena de valor de posición 0?

Respuesta: no hay una cadena de valor de posición 0 posible.

De hecho, si intentas algo como

  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); 

El control gráfico agregará automáticamente una etiqueta para la cadena vacía llamada 1, que muestra el valor de posición.

La única forma de configurar unidades principales y secundarias en la tabla es agregar o eliminar datos de la tabla.

Otra solución podría ser esta:

 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"; 

Entonces usted podría agregar todo su código hasta ahora no funciona

 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!! 

Funcionó como un encanto, extremadamente aburrido si tuviera que agregar más datos, no de un db.