vertical valores tiempo real posicion matrices gráfico graficos graficas graficar grafica escala eje coordenadas cambiar barras .net c#-4.0 asp.net-charts

.net - valores - ¿Cómo fuerzo un gráfico para ajustar automáticamente el eje Y máximo?



graficas en python matplotlib (3)

Tengo un gráfico .NET que estoy llenando en tiempo de ejecución

El gráfico aparece dentro de un informe. Para cada banda en mi informe, borro todas las series y las agrego usando el código

Series s = new Series(); s.Font = new Font("Verdana", 8f); int i = 0; foreach (var month in line.Months) { DataPoint p = new DataPoint(); p.XValue = i; p.YValues = new Double[] { month.LineValue ?? 0 }; s.Points.Add(p); i++; }

Cuando relleno el gráfico por segunda vez, el máximo del Eje Y permanece en 2000, es decir, no se está recalculando

¿Cómo fuerzo el recálculo?

Tengo ScaleBreakStyle habilitado en el eje Y

Si trato de establecer IsLogarithmic en true en el eje Y, obtengo una X en lugar de un gráfico

Estoy usando Visual Studio 2010 con System.Windows.forms.DataVisualization.Charting.Chart

Pablo


necesitas ejecutar esta secuencia:

AxisY.Maximum = Double.NaN; // sets the Maximum to NaN AxisY.Minimum = Double.NaN; // sets the Minimum to NaN enter code herechart.ChartAreas[0].RecalculateAxesScale(); // recalculates the Maximum and Minimum values, since they are set to NaN


Los documentos dicen que el valor predeterminado para la propiedad Axis.Maximum es NaN (no es un número), por lo que debería poder volver a habilitar la función de escala automática al volver a establecer ese valor .

Algo como esto...

chart.ChartAreas[0].AxisY.Maximum = Double.NaN;

ACTUALIZACIÓN / CORRECCIÓN

La respuesta de Anton es correcta; usted debe utilizar:

ChartArea.RecalculateAxesScale();

Según los documentos RecalculateAxesScale() :

... a veces es necesario volver a calcular las propiedades del área del gráfico para que el gráfico se represente correctamente. Por ejemplo, si se cambia un rango de ejes, las etiquetas para ese eje deben recalcularse.

Al parecer, ha estado disponible desde .NET 4.0.


chart.ChartAreas[0].RecalculateAxesScale();