none
Grafica tiempo vs desplazamiento C# RRS feed

  • Pregunta

  • Hola buenas tardes, estoy precisando un poco de ayuda,  tengo una grafica de tiempo (minuto) vs desplazamiento

    desarrollé el siguiente código:

                

            public void Construir_Grafica(string data_desplazamiento) {

                chart1.Series[0].YValueMembers = "Value";
                chart1.Series[0].XValueType = ChartValueType.DateTime;
                chart1.ChartAreas[0].AxisX.LabelStyle.Format = "mm";
                //chart1.ChartAreas["Series1"].AxisX.TitleFont = new Font("Sans Serif", 10, FontStyle.Bold);
                timer1.Start();
                chart1.ChartAreas[0].AxisY.Title = "Displacement, mm";
                chart1.ChartAreas[0].AxisX.Title = "time, min";
                chart1.Series[0].Points.AddXY(DateTime.Now.Minute, data);

            }

    pero mi problema es que DateTime.Now.Minute  me muestra el minuto en tiempo real de la hora del computador y realmente yo necesito comenzar a contar el tiempo desde 0 y colocar un dato cada un minuto. alguna idea??


    • Editado emmp lunes, 18 de enero de 2021 18:31
    lunes, 18 de enero de 2021 18:17

Respuestas

  • Hola emmp

    Lo que se me ocurre, además de que timer1 no lo usas (que se vea al menos), es que al iniciar guardes la hora en una variable, y le pases en la última linea que mostras, la hora actual menos esa variable, lo que te daría el tiempo que transcurrió. Pero puede ser que esté equivocado, porque no conozco mucho de Chart y además no tengo idea de como viene este código, de cual es su mecanismo.

    Mi idea era:

    DateTime ya = DateTime.Now;

    chart1.Series[0].Points.AddXY((DateTime.Now - ya).Minute, data);

     Si no es esto, ¿podrías explicar mejor como funciona así se te puede ayudar?

    Saludos

    Pablo

    lunes, 18 de enero de 2021 21:40
  • Hola emmp

    Si queres que dibuje el gráfico cada un minuto, entonces asigna a Interval del Timer 60000 ms (1 minuto) y en su evento Tick pone que vaya dibujando hasta el minuto que sea, que lo guardas en una variable. Cuando esa variable llega a 1440 (1 día), detenes el Timer. 

    Tene cuidado de iniciar el Timer una sola vez, no cada vez que dibujas.

    Saludos

    • Marcado como respuesta EricRRModerator viernes, 29 de enero de 2021 18:29
    martes, 19 de enero de 2021 20:28

Todas las respuestas

  • Hola emmp

    Lo que se me ocurre, además de que timer1 no lo usas (que se vea al menos), es que al iniciar guardes la hora en una variable, y le pases en la última linea que mostras, la hora actual menos esa variable, lo que te daría el tiempo que transcurrió. Pero puede ser que esté equivocado, porque no conozco mucho de Chart y además no tengo idea de como viene este código, de cual es su mecanismo.

    Mi idea era:

    DateTime ya = DateTime.Now;

    chart1.Series[0].Points.AddXY((DateTime.Now - ya).Minute, data);

     Si no es esto, ¿podrías explicar mejor como funciona así se te puede ayudar?

    Saludos

    Pablo

    lunes, 18 de enero de 2021 21:40
  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    lunes, 18 de enero de 2021 21:43
    Moderador
  • Hola, siendo sincera yo ya intenté con temporizador y con varios métodos, lo que he conseguido es calcular la diferencia de tiempo entre el momento actual y un minuto anterior. Pero lo que necesito es bien básico... Yo necesito que la numeración del eje x comience 0,1,2,3 ... etc contando los minutos y es algo que pensé que sería facil de hacer pero me he enredado lamentablemente. Yo tengo un sensor que mide el desplazamiento en tiempo real y necesito graficar ese valor cada un minuto, ese proceso estará activo durante 24 horas. 
    martes, 19 de enero de 2021 12:27
  • Hola emmp

    Si queres que dibuje el gráfico cada un minuto, entonces asigna a Interval del Timer 60000 ms (1 minuto) y en su evento Tick pone que vaya dibujando hasta el minuto que sea, que lo guardas en una variable. Cuando esa variable llega a 1440 (1 día), detenes el Timer. 

    Tene cuidado de iniciar el Timer una sola vez, no cada vez que dibujas.

    Saludos

    • Marcado como respuesta EricRRModerator viernes, 29 de enero de 2021 18:29
    martes, 19 de enero de 2021 20:28